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

时间:2014-11-28 07:57:23

标签: ruby-on-rails mongodb mongoid database

我有和app在哪里我为几个国家的邮政编码提供预测输入。 你可以想象,为了做到这一点,需要存储大量的数据。

我正在使用不同的数据库来存储多个国家/地区的数据。随着我支持更多国家,数据库的数量将会增长。我通过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)

到目前为止,我还没有看到任何问题。但我即将向系统添加另一个数据库。我现在有7个......

问题是:

以这种方式准备好使用多个数据库会话是不是很糟糕?或者这可以接受吗? 主要考虑内存占用,性能等 这些数据库是外部托管的,我到目前为止在Heroku运行它。在这种情况下,我们讨论的是从DB读取,没有任何内容从应用程序写入这些DB。虽然我有一些其他DB用于以相同的方式存储数据和设置。

感谢。

0 个答案:

没有答案