Ruby on rails Rails多个数据库会话,有什么缺点吗?

Ruby on rails Rails多个数据库会话,有什么缺点吗?,ruby-on-rails,mongodb,mongoid,database,Ruby On Rails,Mongodb,Mongoid,Database,我有一个应用程序,为几个国家的邮政编码提供预测输入。 正如您所想象的那样,需要存储大量数据才能做到这一点 我使用不同的数据库来存储几个国家的数据。随着我支持更多国家,DBs的数量将会增加。我通过mongoid将它们存储在mongodb中 我就是这样做的: class France_codes include Mongoid::Document store_in session: "db_south_europe" end 该会话在mongoid.yml中定义 productio

我有一个应用程序,为几个国家的邮政编码提供预测输入。 正如您所想象的那样,需要存储大量数据才能做到这一点

我使用不同的数据库来存储几个国家的数据。随着我支持更多国家,DBs的数量将会增加。我通过mongoid将它们存储在mongodb中

我就是这样做的:

class France_codes
    include Mongoid::Document
    store_in session: "db_south_europe"
end
该会话在mongoid.yml中定义

production:
    sessions:
        default:
            uri: "mongodb://...."

        db_south_europe:
            uri: "mongodb://...."

        db_north_europe:
            uri: "mongodb://...."
选择其中一个连接。 我获取国家名称并将其设置为常量,以便使用其方法

p = (country+"_codes").constantize
results = p.where(:cp => /^#{prefix}/).pluck(:pl)
到目前为止,我还没有发现任何问题。但我将要向系统中添加另一个DB。我现在有7个

问题是:

这样设置几个DB会话是否不好?还是可以接受? 主要考虑内存占用、性能等。 这些数据库是外部托管的,我目前正在Heroku运行它。我们讨论的是从数据库读取,在这种情况下,应用程序从未向这些数据库写入任何内容。虽然我有一些其他的数据库,它们用于以相同的方式存储数据和设置


谢谢。

有一个问题:你为什么需要这么多DBs?一个例子:英国有180万个邮政编码。此时,我为我的mongodb数据库使用免费托管。自由大小限制为500MB。仅英国文件就几乎达到了免费数据库的限制。我需要一个更大的数据库,以便在一个数据库中包含所有欧盟邮政编码。我不知道搜索速度是否会变慢。因此,答案是每个国家需要的文件空间,尽管有些相当小,共享相同的DB.Hmm。这不是DB选择的问题。Postgresql的免费托管也有存储限制,我可能会以同样的情况结束。我对Mongodb很满意。如果我想换星展,我会选择Redis,但这对大型星展来说是相当昂贵的。是的。。。很抱歉右Redis不是DB。我知道Redis不是DB,我不应该称Redis为DB。感谢您的评论,但讨论的主题已转移到DB选择问题(或内存中的键值对存储)。最初的文章不是关于使用什么数据库或存储机制。因为问题是
对多个数据库进行Rails,有什么缺点吗?
,所以这个主题是关于数据库机制的。主要缺点是,mant-DBs需要更高的成本来支持单一数据库。