4

我的網站讀取流量非常大。比寫流量要重得多。Rails:如何跨主/從數據庫拆分寫/讀查詢

爲了提高我的網站的性能,我想到了使用master/slave數據庫配置。

octupus gem似乎提供我想要的,但由於我的應用程序是巨大的,我不能去通過數百萬的源代碼行來更改查詢分佈(發送讀取查詢到從屬服務器和寫入查詢到主服務器) 。

MySQL Proxy似乎是解決此問題的好方法,但由於它是在alpha版本中,我不想使用它。

所以我的問題是什麼是最好的方式來分裂主/從服務器的讀/寫查詢?

是否有可能分裂讀/寫查詢,而不使用任何寶石在軌道?

+1

我們可以假設你的DB實際上是MySQL嗎? – 2015-04-04 17:33:36

+0

@PhilipHallstrom ---是我的數據庫是MySQL – 2015-04-06 04:39:53

回答

2

使用章魚寶石,您不必更改大部分代碼以使寫查詢進入主數據庫服務器,並且讀取查詢將轉到奴隸。

這是一個簡單的配置文件,如here所述。

我以前試過這個,它工作得很好。對我來說唯一的問題是,當從站關閉時,它不會將查詢重定向到主數據庫服務器,正如我詢問here

但是,如果要配置每個單獨的查詢目標,它將需要一些工作。

我建議你開始繪製你更頻繁的查詢和那些需要更長時間來回應的查詢。瞭解這些查詢,您可以單獨優化它們。這可能已經解決了部分問題。

如果您之後仍然需要主從複製,請使用章魚寶石來更改只有少數複雜查詢的行爲。

+2

市場上是否有任何工具,如mysql代理,它會自動拆分讀/寫查詢,而無需進行任何配置(如章魚寶石)。 – 2015-04-23 05:58:29