更新時間:2021-01-13 17:03:29 來源:動力節點 瀏覽1331次
MySQL復制是指從一個mysql服務器(MASTER)將數據通過日志的方式經過網絡傳送到另一臺或多臺mysql服務器(SLAVE),然后在slave上重放(replay或redo)傳送過來的日志,以達到和master數據同步的目的。MySQL復制屬于比較成熟的技術,在MySQL數據庫中得到廣泛使用,下面我們一起來了解一下MySQL復制的優點。
MySQL 內建的復制功能是構建大型、高性能應用程序的基礎。將 MySQL 的數據分布到多個系統上去,這種分布的機制是通過將 MySQL 的某一臺主機的數據復制到其他主機(Slaves)上,并重新執行一遍來實現的。在復制過程中,一臺服務器充當主服務器,而另一臺或多臺其他服務器充當從服務器。主服務器將更新寫入二進制日志文件,并維護文件的一個索引以跟蹤日志循環。這些日志可以記錄發送到從服務器的更新。當一個從服務器連接主服務器時,它通知主服務器,從服務器在日志中讀取的最后一次成功更新的位置。從服務器接收從那時起發生的任何更新,然后封鎖并等待主服務器通知新的更新。
結合上述的MySQL復制的基本原理,總結出下面5個MySQL復制的優點:
1.提供了讀寫分離的能力。
MySQL復制讓所有的slave都和master保持數據一致,因此外界客戶端可以從各個slave中讀取數據,而寫數據則從master上操作。也就是實現了讀寫分離。
需要注意的是,為了保證數據一致性,寫操作必須在master上進行。
通常說到讀寫分離這個詞,立刻就能意識到它會分散壓力、提高性能。
2.為MySQL服務器提供了良好的伸縮(scale-out)能力。
由于各個slave服務器上只提供數據檢索而沒有寫操作,因此"隨意地"增加slave服務器數量來提升整個MySQL群的性能,而不會對當前業務產生任何影響。
之所以"隨意地"要加上雙引號,是因為每個slave都要和master建立連接,傳輸數據。如果slave數量巨多,master的壓力就會增大,網絡帶寬的壓力也會增大。
3.數據庫備份時,對業務影響降到最低。
由于MySQL服務器群中所有數據都是一致的(至少幾乎是一致的),所以在需要備份數據庫的時候可以任意停止某一臺slave的復制功能(甚至停止整個mysql服務),然后從這臺主機上進行備份,這樣幾乎不會影響整個業務(除非只有一臺slave,但既然只有一臺slave,說明業務壓力并不大,短期內將這個壓力分配給master也不會有什么影響)。
4.能提升數據的安全性。
這是顯然的,任意一臺MySQL服務器斷開,都不會丟失數據。即使是master宕機,也只是丟失了那部分還沒有傳送的數據(異步復制時才會丟失這部分數據)。
5.數據分析不再影響業務。
需要進行數據分析的時候,直接劃分一臺或多臺slave出來專門用于數據分析。這樣OLTP和OLAP可以共存,且幾乎不會影響業務處理性能。
MySQL復制的優點決定了MySQL數據庫中復制技術存在的必然性,MySQL復制不僅僅對數據安全和業務提升有很大幫助,同時也為MySQL數據庫的發展提供了更多的可能。想要學好MySQL數據庫,我們必須掌握MySQL中的許多核心技術,在本站的MySQL教程中對這些MySQL核心技術都有很好的剖析,小伙伴們不要錯過哦!
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習