99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>匯編編程>

mysql數(shù)據(jù)庫同步原理

大?。?/span>0.5 MB 人氣: 2017-09-28 需要積分:1

  MySQL主從復(fù)制原理

  為了減輕主庫的壓力,應(yīng)該在系統(tǒng)應(yīng)用層面做讀寫分離,寫操作走主庫,讀操作走從庫,下圖為MySQL官網(wǎng)給出的主從復(fù)制的原理圖,從圖中可以簡單的了解讀寫分離及主從同步的過程,分散了數(shù)據(jù)庫的訪問壓力,提升整個系統(tǒng)的性能和可用性,降低了大訪問量引發(fā)數(shù)據(jù)庫宕機的故障率。

  mysql數(shù)據(jù)庫同步原理

  binlog簡介

  MySQL主從同步是基于binlog文件主從復(fù)制實現(xiàn),為了更好的理解主從同步過程,這里簡單介紹一下binlog日志文件。

  binlog日志用于記錄所有更新了數(shù)據(jù)或者已經(jīng)潛在更新了數(shù)據(jù)(例如,沒有匹配任何行的一個DELETE)的所有語句。語句以“事件”的形式保存,它描述數(shù)據(jù)更改,它是以二進制的形式保存在磁盤中。我們可以通過mysql提供的查看工具mysqlbinlog查看文件中的內(nèi)容,例如 mysqlbinlog mysql-bin.00001 | more,這里注意一下binlog文件的后綴名00001,binlog文件大小和個數(shù)會不斷的增加,當(dāng)MySQL停止或重啟時,會產(chǎn)生一個新的binlog文件,后綴名會按序號遞增,例如mysql-bin.00002、mysql-bin.00003,并且當(dāng)binlog文件大小超過 max_binlog_size系統(tǒng)變量配置時也會產(chǎn)生新的binlog文件。

  1. binlog日志格式

  (1)statement : 記錄每一條更改數(shù)據(jù)的sql

  優(yōu)點:binlog文件較小,節(jié)約I/O,性能較高。

  缺點:不是所有的數(shù)據(jù)更改都會寫入binlog文件中,尤其是使用MySQL中的一些特殊函數(shù)(如LOAD_FILE()、UUID()等)和一些不確定的語句操作,從而導(dǎo)致主從數(shù)據(jù)無法復(fù)制的問題。

 ?。?)row : 不記錄sql,只記錄每行數(shù)據(jù)的更改細(xì)節(jié)

  優(yōu)點:詳細(xì)的記錄了每一行數(shù)據(jù)的更改細(xì)節(jié),這也意味著不會由于使用一些特殊函數(shù)或其他情況導(dǎo)致不能復(fù)制的問題。

  缺點:由于row格式記錄了每一行數(shù)據(jù)的更改細(xì)節(jié),會產(chǎn)生大量的binlog日志內(nèi)容,性能不佳,并且會增大主從同步延遲出現(xiàn)的幾率。

 ?。?)mixed:一般的語句修改使用statment格式保存binlog,如一些函數(shù),statement無法完成主從復(fù)制的操作,則采用row格式保存binlog,MySQL會根據(jù)執(zhí)行的每一條具體的sql語句來區(qū)分對待記錄的日志形式,也就是在Statement和Row之間選擇一種。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?