我打算創建具有相似功能的多個rails博客應用程序。爲了減少花在管理這些rails應用程序上的時間,我決定創建一個單一的內容管理系統來監督它們。例如。 content.example.com內容使用單個mysql數據庫管理多個rails應用程序
在這個CMS的設計中,我一直在討論是否使用包含所有博客應用程序數據的單個mysql數據庫。這個單一數據庫將位於CMS應用程序(「content.example.com」)上,然後其他應用程序將查詢其數據。
博客應用:
//模型Blog.rb
class Blog < ActiveRecord::Base
establish_connection "external_cms"
end
//database.yml
external_cms:
adapter: mysql
database: root/to/external/cms_db
username: user
password: password
在這種情況下的CMS應用程式數據庫將變得非常大快,減緩從博客應用程序查詢查詢。即使索引,我知道這可能不是一個可行的選擇。我讀過幾個博客也要考慮的是,博客應用程序的schema.rb和模型需要與CMS應用程序的相同。在我到目前爲止的測試中發現,schema.rb並不一定是相同的(尚未測試模型是否需要相同)。
在同一個數據庫中運行多個應用程序是否常見?如果不是這是因爲查詢速度減慢以及需要保持schema.rb和模型相同的頭痛問題嗎?
以及索引什麼是我可以加快查詢補償大型數據庫的其他方式?
我可以在保持一個CMS的同時運行單個數據庫嗎?