本文小編為大家詳細介紹“MySQL主從復制的原理及作用是什么”,內容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“mysql主從復制的原理及作用是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設計、成都網(wǎng)站設計與策劃設計,岳池網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設10多年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:岳池等地區(qū)。岳池做網(wǎng)站價格咨詢:18982081108
提升數(shù)據(jù)庫并發(fā)能力
# 執(zhí)行查詢操作的時候,先查詢緩存中是否有數(shù)據(jù),緩存中有數(shù)據(jù),則獲取緩存中的數(shù)據(jù) # 緩存中沒有數(shù)據(jù),則從mysql數(shù)據(jù)庫中查詢數(shù)據(jù),同時將數(shù)據(jù)寫入緩存中
主從復制的作用
其中一個是Master主庫,負責寫入數(shù)據(jù),我們稱之為:寫庫。 其它都是Slave從庫,負責讀取數(shù)據(jù),我們稱之為:讀庫。 當主庫進行更新的時候,會自動將數(shù)據(jù)復制到從庫中,而我們在客戶端讀取數(shù)據(jù)的時候,會從從庫中進行讀取。 1、讀寫分離:面對“讀多寫少”的需求,采用讀寫分離的方式,可以實現(xiàn)更高的并發(fā)訪問。同時,我們還能對從服務器進行負載均衡,讓不同的讀請求按照策略均勻地分發(fā)到不同的從服務器上,讓讀取更加順暢。 讀取順暢的另一個原因,就是減少了鎖表的影響,比如我們讓主庫負責寫,當主庫出現(xiàn)寫鎖的時候,不會影響到從庫進行SELECT的讀取。 2、數(shù)據(jù)備份:我們通過主從復制將主庫上的數(shù)據(jù)復制到了從庫上,相當于是一種熱備份機制,也就是在主庫正常運行的情況下進行的備份,不會影響到服務 3、具有高可用性:數(shù)據(jù)備份實際上是一種冗余的機制,通過這種冗余的方式可以換取數(shù)據(jù)庫的高可用性,也就是當服務器出現(xiàn)故障或宕機的情況下,可以切換到從服務器上,保證服務的正常運行
主從復制原理
Slave 會從 Master 讀取 binlog 來進行數(shù)據(jù)同步 步驟1: Master 將寫操作記錄到二進制日志( binlog )。 步驟2: Slave 將 Master 的binary log events拷貝到它的中繼日志( relay log ); 步驟3: Slave 重做中繼日志中的事件,將改變應用到自己的數(shù)據(jù)庫中。 MySQL復制是異步的且串行化的,而且重啟后從 接入點 開始復制。
實際上主從同步的原理就是基于 binlog 進行數(shù)據(jù)同步的。在主從復制過程中,會基于 3 個線程 來操作,一個主庫線程,兩個從庫線程 二進制日志轉儲線程 (Binlog dump thread)是一個主庫線程。當從庫線程連接的時候, 主庫可以將二進制日志發(fā)送給從庫,當主庫讀取事件(Event)的時候,會在 Binlog 上 加鎖 ,讀取完成之后,再將鎖釋放掉。 從庫 I/O 線程 會連接到主庫,向主庫發(fā)送請求更新 Binlog。這時從庫的 I/O 線程就可以讀取到主庫的二進制日志轉儲線程發(fā)送的 Binlog 更新部分,并且拷貝到本地的中繼日志 (Relay log)。 從庫 SQL 線程 會讀取從庫中的中繼日志,并且執(zhí)行日志中的事件,將從庫中的數(shù)據(jù)與主庫保持同步。
主從復制原則
每個 Slave 只有一個 Master 每個 Slave 只能有一個唯一的服務器ID 每個 Master 可以有多個 Slave
讀到這里,這篇“mysql主從復制的原理及作用是什么”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。