在Rails 3中使用多个数据库会影响性能吗?

时间:2012-10-31 19:46:25

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

我目前正在使用带有行限制的heroku数据库的客户端,我们有一个记录活动的大表,所以在尝试了一些解决方案后,我发现我可以为单个模型使用不同的连接。

它会影响性能吗?我想我将用这个表创建一个带postgres的微实例。

3 个答案:

答案 0 :(得分:1)

根据您的其他要求,这似乎可以很好地用于Heroku的Postgres“跟随”功能,该功能会创建一个影响主数据库的只读实例。更多信息:Heroku Postgres Follow

答案 1 :(得分:1)

不,拥有多个数据库连接不应影响性能。它可能会为每个工作进程使用稍多的内存,但可能不足以成为一个问题。

我设置第二个数据库连接的方法是在database.yml中使用另一个节。除了开发和生产部分之外,还可以在使用它的模型中引用“other_db”连接。如果您最终使用另一个连接,您可能需要创建一个继承自ActiveRecord :: Base并且只具有establish_connection行的“超类”模型,并使实际模型继承该模型。这样你就不会继续重复establish_connection行了。

答案 2 :(得分:1)

我认为拥有多个数据库是一个好主意,如果你正在处理大量数据和一个应用程序的多个租户。我在我的database.yml.So使用不同的部分使用建立连接我会指向这一部分所以这些特定的模型将指向本节。我们也可以避免数据重复。

考虑我们有多个租户,每个租户都有一个不同的数据库。但是每个租户都有一些消耗的公共数据。所以对于这些模型我们可以使用不同的数据库。所以所有租户都会从这个数据库中获取数据。因此我们可以避免数据重复也是。