Mysql
通過不同的 mysql/mariadb 數據庫共享數據的最佳實踐
我的應用程序使用帶有 50 多個表的數據庫。現在我需要安裝另一個應用程序實例。問題是我想將一些表格用作“通用”數據,例如兩者中的“品牌”或“城市”或“國家”(目前只有 2 個,但可能很快會更多)應用程序。
我搜尋並發現我可以用這些表製作“通用”數據庫,並在每個數據庫實例中都有指向相應表的視圖。
主要應用程序查詢嚴重依賴於該公用表,所以我擔心這是否會減慢我的查詢速度,因為視圖沒有索引?
有沒有更好的做法?我現在正在尋找 mysql 手冊中的複制。是這樣的嗎?將表從通用數據庫複製到應用實例數據庫?這可以是單向複製嗎?(只有“通用”數據庫中的表可以更改然後復製到其他數據庫)?
謝謝你的建議
如果輔助“應用程序實例”上的“公共”表被以只讀方式訪問,那麼您最簡單的選擇將是使用 replicate_ignore_table = … 行進行傳統的主從配置,並將其放入所有表的所有從屬中,除了“普通”的那些。
如果您需要在所有應用程序實例之間具有相同的行為(這意味著您沒有使用應用程序邏輯來隔離對主伺服器的寫入),那麼我會認真考慮使用某種 galera 集群產品。