Mysql

不同城市分佈MySQL?

  • September 3, 2012

我們在 A 市有我們的主 MySQL 伺服器。我們在 B 市有大部分客戶服務人員。工作人員抱怨伺服器的連接速度太慢。選項包括:

  1. 讓他們通過公共網際網路而不是我們在城市之間的直接連結出去;這樣,ping 可能會更長,但它們不會與城市之間的 VOIP 流量競爭
  2. 集群數據庫,以便在兩個城市的本地伺服器上同時進行寫入和讀取。

2 更可取,但正如您可能從我的描述中看出的那樣,我完全不知道如何實現它,或者即使它是“集群”。對於 MySQL Cluster,我能找到的最好的方法是它需要使用 NDB 表,我寧願不將我們的整個數據庫轉換為那個。我在這裡有什麼選擇?謝謝。

兩個城市相距多遠(ping 時間)?80ms 是我們在美國經歷的。這還不錯。

可以寫Master-Master的兩個頭,但是有很多痛點。

NDB Cluster 允許 hot-hot,但(如您所說)需要一些轉換。

所以,回到我認為唯一可行的解​​決方案:一個可寫的 master,加上任意數量的 slave。

讓遠端主控感到痛苦的一件事是,如果使用者的“操作單元”轉換為許多 SQL 語句。這可以/應該通過以下方式解決:(1)重新考慮程式碼以使用更少的語句(2)使用儲存過程來封裝盡可能多的 SQL 語句,然後將其部署在遠端 Master 上。

讀取(“關鍵讀取”除外)可以/應該轉到負載均衡器後面的從屬設備。並且一些機制應該確保讀取通常是“本地的”。

引用自:https://dba.stackexchange.com/questions/16039