MySQL主從複製與讀寫分離,mysql主從讀寫
所謂的讀寫分離就是事先準備兩種類型的MySQL資料庫,一種做更新操作(master)、一種做查詢操作(slave)。當應用系統需要更新資料時調用master,查詢資料時調用slave。這樣做的好處就是將單一資料庫的業務處理分擔給多個資料庫,也可以理解為負載平衡,這樣就有一個問題,master的資料什麼時候通過哪種方式同步到slave中呢?這時候就用到了主從複製了,主從複製提供了多種方式將Master中的資料同步到Slave中,具體如何實踐請參考網路上其他文章。
下邊通過一張圖來看下系統結構:
上邊說到了利用主從複製實現讀寫分離來提高系統的負載能力,其實還應該再加上一個Master來實現資料庫系統的高可用性,這樣就算是其中任何一個資料庫伺服器宕機也不影響系統業務使用。
關於應用系統如何?讀寫分離、高可用性請根據具體的項目情況,例如:在spring項目中配置多個資料來源,使用aop切入點根據save*、update*、delete*等方法調用master資料來源,根據find*、get*、query*來調用slave資料來源。
問:1,mysql主從複製是什概念,什場合下用,最好舉例說明;
1 主從複製,是用來建立一個和主要資料庫完全一樣的資料庫環境,稱為從資料庫;主要資料庫一般是即時的業務資料庫,從資料庫的作用和使用場合一般有幾個:
一是作為後備資料庫,主要資料庫伺服器故障後,可切換到從資料庫繼續工作;
二是可在從資料庫作備份、資料統計等工作,這樣不影響主要資料庫的效能;
2 讀寫分離,是指讀與寫分別使用不同的資料庫,當然一般是在不同伺服器上的;在同一台伺服器上的讀寫環境,估計只是用來測試吧。
一般讀寫的資料庫環境配置為,一個寫入的資料庫,一個或多個讀的資料庫,各個資料庫分別位於不同的伺服器上,充分利用伺服器效能和資料庫效能;當然,其中會涉及到如何保證讀寫資料庫的資料一致,這個就可以利用主從複製技術來完成。
一般應用場合為:業務輸送量很大,讀資料庫(可簡單理解為select語句的 比例和影響)的負載較大;
官方的mysql-proxy就是一個實現了讀寫分離、負載平衡等多個功能的軟體。
mysql實現主從複製後,要做什才可以使其達到負載平衡還是說什不用做直接可以實實?
主從複製時MySQL自身帶的功能
如果要實現負載平衡需要其他來配合,
我現在研究的是用Amoeba來實現讀寫分離,建議您多到網上檢索一些關於mysql負載平衡的文章。
當然還有人用MySQL Proxy來做讀寫分離。不知道能不能幫到你。