Ruby on rails 使用单个mysql数据库管理多个rails应用程序的内容

Ruby on rails 使用单个mysql数据库管理多个rails应用程序的内容,ruby-on-rails,database-design,database-connection,content-management-system,Ruby On Rails,Database Design,Database Connection,Content Management System,我打算创建具有类似功能的多个rails博客应用程序。 为了减少管理这些rails应用程序的时间,我决定创建一个单一的内容管理系统来管理它们。例如content.example.com 在这个CMS的设计中,我一直在争论是否使用一个包含所有博客应用程序数据的mysql数据库。这个单一的数据库将位于CMS应用程序(“content.example.com”)上,其他应用程序随后将查询其数据 博客应用程序: //模型Blog.rb class Blog < ActiveRecord::Base

我打算创建具有类似功能的多个rails博客应用程序。 为了减少管理这些rails应用程序的时间,我决定创建一个单一的内容管理系统来管理它们。例如content.example.com

在这个CMS的设计中,我一直在争论是否使用一个包含所有博客应用程序数据的mysql数据库。这个单一的数据库将位于CMS应用程序(“content.example.com”)上,其他应用程序随后将查询其数据

博客应用程序:

//模型Blog.rb

class Blog < ActiveRecord::Base  
establish_connection "external_cms"  
end
在这种情况下,CMS应用程序数据库将迅速变得非常大,从而减缓博客应用程序的查询速度。即使使用索引,我也知道这可能不是一个可行的选择。我已经阅读了一些博客,还需要考虑的是,博客应用程序的模式、RB和模型需要与CMS应用程序相同。在到目前为止的测试中,我发现schema.rb根本不必相同(我没有测试模型是否需要相同)

在同一个数据库上运行多个应用程序是常见的做法吗?如果不是,那是因为查询速度变慢,以及需要保持schema.rb和模型相同而带来的麻烦

除了索引,还有哪些其他方法可以加快查询速度以补偿大型数据库


除了运行单个数据库,同时保留一个CMS,我还有什么其他选择?

这个问题经常出现,最好让您仔细阅读,看看它是否对您有意义

我的建议是,从使用同一数据库的所有博客应用开始,然后在性能出现问题时(可能永远不会)进行切分

加速数据库访问的方法有很多,第一道防线是缓存

external_cms:
  adapter: mysql
  database: root/to/external/cms_db
  username: user
  password: password