主從複製的方式
主從複製分為:非同步複製,半同步複製和全同步複製
非同步複製:是mysql預設的複製模式,主庫在執行完客戶端提交的事務之後會立刻將結果返回給客戶端,並不關心從庫接收的結果,這樣就會導致當主資料庫因為某些原因宕機之後從資料庫可能沒有同步到主資料庫的資料,導致主從資料不一致,甚者如果將從資料庫強制轉換為主資料庫,可能導致資料丟失
優點:返回客戶端無延遲
缺點:主從資料不一致,資料丟失
半同步複製:半同步複製解決了主從資料庫不一致的問題,原理是只有當至少乙個從資料庫接收到並且寫入到read log 日誌中之後才會返回給客戶端接收結果,這樣帶來的問題是至少會帶來乙個 tcp/ip的往返時間的延遲
優點:保證主從資料庫的最終一致性
缺點:返回客戶端有延時
全同步複製:當所有的從庫接收到主資料庫的資料並且執行完了其中的事務之後才會給客戶端返回
優點:主從資料庫的資料強一致性
缺點:耗費效能
並行複製:就是在半同步複製的基礎上從資料庫會在內部有多個sql執行緒去將relay log中的資料寫入到資料庫中,因為5.6x版本之前一直是單執行緒的,因此產生主從延遲的機率會很大,現在多執行緒處理之後,能最大可能的減少主從延遲的機率
主從複製的原理
資料庫將使用者的請求通過工作執行緒來將資料寫入到資料庫中然後在寫入到 binlog 日誌中
binlog日誌詳細記錄了資料的操作資訊
主資料庫會有乙個io執行緒將binlog日誌中的資料同步到從資料庫的relay日誌中
從資料庫再通過自己資料庫內的sql執行緒將 relay log 日誌中的資料寫入到資料庫中
5.6x版本之前sql執行緒是單執行緒的,io執行緒支援多執行緒操作
5.7x版本之後sql執行緒也支援多執行緒
mysql主從複製原理
mysql主從複製 靈活 用途及條件 mysql主從複製用途 主從部署必要條件 主從原理 mysql主從複製原理 從庫生成兩個執行緒,乙個i o執行緒,乙個sql執行緒 1 當主伺服器發生改變時,會將此改變以二進位制日誌的形式傳送到binlog中 2 而副伺服器會有乙個中繼日誌,實時監控主伺服器的b...
mysql主從複製原理
什麼是分庫分表 分表是啥意思?就是把乙個表的資料放到多個表中,然後查詢的時候你就查乙個表。比如按照使用者id來分表,將乙個使用者的資料就放在乙個表中 分庫是啥意思?就是你乙個庫一般我們經驗而言,最多支撐到併發2000,一定要擴容了,而且乙個健康的單庫併發值你最好保持在每秒1000左右,不要太大。那麼...
mysql主從複製原理
1 主伺服器上發起乙個mysql事務 2 主伺服器上使用一條或者多條sql語句。物理結構的真正實現依賴於儲存引擎,一邊會先記錄到記憶體快取中 innodb的語句被記錄到innodb事務日誌中,myisam 直接寫到表的資料檔案中 3 事務結束,主伺服器的二進位制日誌檔案記錄所使用的dml語句的結果 ...