婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MYSQL中binlog優化的一些思考匯總

MYSQL中binlog優化的一些思考匯總

熱門標簽:400電話到哪辦理優惠 南寧外呼系統招商 鄭州網絡外呼系統價錢 博樂電銷機器人 云南大數據外呼系統 上海市三維地圖標注 怎么更改高德地圖標注 機器人打電銷電話 電話機器人是電腦呼號嗎

問題

問題1:如何解決事務提交時flush redo log帶來的性能損失

WAL是實現事務持久性(D)的一個常用技術,基本原理是將事務的修改記錄redo log。redo log順序追加寫入。事務提交時,只需要保證事務的redo log落盤即可,通過redo log的順序寫代替頁面的隨機寫提升數據庫系統的性能。但是,該方案必須要求每個事務提交時都將其生成的redo log進行一次刷盤,效率不高。

問題2:binlog和引擎層事務提交的順序問題

對于單個事務而言,日志寫入順序是先redo log再binlog,只要維持該順序即可維持正確性。但對于一個高并發的數據庫系統而言,每時每刻可能都會存在眾多并發執行的事務。我們還需要通過一定的手段來維護Server層binlog和引擎層事務提交的順序一致性。

維護這種順序一致性其實是為了保證備份工具Xtrabackup的正確性。

當 binlog 作為協調者,如果其中記錄的事務順序和存儲引擎層記錄的順序不一樣的話,備份工具(Innodb Hot Backup)拿到備份集的位點可能會存在空洞。因為備份工具會拷貝 redo 日志,在 redo 的頭部會記錄最后一個提交的事務對應的 binlog 位點,備份集建立之后就會根據這個位點繼續從主庫 dump binlog。

假如有三個事務 T1,T2,T3 已經 fsync 到 binlog 文件中,三個事務的在文件中的位點分別是 100,200,300,但是在引擎層的只有 T1 和 T3 完成了 commit 并記錄到 redo 中,最后一個 commit 的事務 T3 位點是 300。此時通過備份工具拿到的數據就是這樣的狀態,備份集啟動的時候會走崩潰恢復的流程,prepare 事務被回滾(備份集不會備份 binlog 文件,對應上個小節 xid 集合為空),自位點 300 繼續從主庫同步binlog并apply,導致 T2 在備庫就丟失了。

因此,我們必須設計一種機制來保證Server層的binlog寫入順序和存儲引擎層的事務提交順序保持一致。

問題3:同時寫redo和binlog帶來的性能下降

問題1中提到每次的事務提交會帶來性能問題,而這個問題在引入binlog后會變得更加嚴重。每個事務提交都會增加一次文件IO,且需要刷盤。如果系統并發比較高,那么這些IO將會成為拖慢整體性能的瓶頸。

解決方案

問題1:Redo log組提交技術

redo組提交技術思想很簡單:通過將多個事務redo log的刷盤動作合并,減少刷盤次數。Innodb的日志系統里面,每條redo log都有一個LSN(Log Sequence Number)。事務將日志拷貝到redo log buffer時,都會獲取當前最大的LSN,且LSN單調遞增,因此可以保證不同事務的LSN不會重復。那么假設三個事務Trx1、Trx2、Trx3的日志的最大LSN分別為LSN1、LSN2、LSN3(LSN1 LSN2 LSN3),它們同時進行提交,那么如果trx3率先執行提交,它會要求刷盤至LSN3處,這樣就順便將Trx1、Trx2的redo log也刷了,Trx1和Trx2會判斷自己的LSN小于當前已落盤的最大LSN,就無需再次刷盤。

問題2:內部XA事務

開啟binlog情況下,引入內部XA事務來協調上層和存儲引擎層,具體來說,在事務提交時引入兩個階段:

prepare:將redo log刷盤操作以確保data頁和undo頁的更新已經刷新到磁盤,設置事務狀態為PREPARE狀態;

commit:1). 寫binlog并刷盤,2).調用引擎層事務提交接口。將事務狀態設置為COMMIT。

如此兩階段提交主要是要保證數據庫崩潰時的正確性。因為一旦binlog落盤了,它就可能被下游節點消費。這種事務必須在重啟后被commit而非rollback。而對于binlog未落盤的事務,崩潰恢復時直接回滾。

具體來說,故障恢復時,掃描最后一個binlog文件(在flush階段,如果binlog大小超過閥值,進行rotate binlog文件,會保證該文件記錄的最后一個事務一定被提交),提取其中的xid。重做檢查點以后的redo日志,讀取事務的undo段信息,搜集處于prepare階段的事務列表,將事務的xid與binlog中記錄的xid對比,若存在,則提交,否則就回滾。

MySQL5.6以前,為了保證數據庫binlog的寫入順序和InnoDB層的事務提交順序一致,MySQL數據庫內部使用了prepare_commit_mutex鎖。

具體來說,在兩階段提交引擎層 prepare 的時候加鎖,在引擎層 commit 之后釋放鎖:

innobase_xa_prepare()
write() and fsync() binary log
innobase_commit()

這樣確實可以保證 binlog 和 innodb 的事務順序一致,但是這把鎖會導致所有的事務串行化執行,且每次提交都會至少調用多次fsync,效率很低。這也是接下來需要探討并解決的一個問題。

問題4

參考redo log優化技術,引入組提交技術來優化binlog的寫入性能。

考慮未優化時事務提交流程:

prepare:該階段刷存儲引擎層(innodb)的redo log并將事務狀態設置為PREPARED(更新undo page上事務狀態),該階段不涉及binlog
commit:寫binlog日志并刷盤,同時引擎層釋放鎖,釋放回滾段、設置事務狀態為COMMITTED等
所謂的組提交技術其本質上是將耗時的commit步驟進行更細粒度的拆分,具體來說:

將步驟2的commit 分為三個階段:

Flush:寫binlog,但不sync
Sync: 調用 fsync 操作將文件落盤
Commit :調用存儲引擎接口提交事務

這里的fsync是耗時操作,因此我們希望能攢足夠多的寫入后才進行一次fsync調用,在這里使用batch技術。其原理是:上述步驟中的每個階段都有一個對應的任務鏈表,每個進入該階段的線程會將自己的任務加入至該鏈表中,鏈表加鎖以保證正確性。第一個加入該鏈表的線程會成為Leader,后續的線程成為Follower。鏈表中的所有任務組成一個Batch,由Leader負責執行,而Follower則等待其任務完成即可。

一旦某階段的鏈表任務執行完成,這些任務會進入下一個階段,同樣加入該階段的任務鏈表,重復上述執行流。

如此設計有以下幾點好處:

  1. 使用Leader執行而非每個線程各自執行可有效減少write/fsync等調用次數,提高效率
  2. 可保證事務寫binlog和引擎層提交的順序一致
  3. 多事務可并發執行,而不再需要被prepare_commit_mutex鎖強制串行化

除此之外,MYSQL還對prepare階段刷redo log進行了進一步優化。原來的設計是多事務可并發地刷redo log,同樣效率不夠高。可以將prepare階段的redo log刷盤放在commit階段的Flush階段執行。但有個小問題需要說明的是:優化前每個線程各自負責自己的redo log的落盤,且知道需要flush的redo log的lsn,如果改為在Flush階段由其Leader線程統一落盤,此時它不了解每個線程的redo log的lsn,因此它簡單粗暴地flush至log_sys的最大lsn,這就保證了要提交事務的redo log一定可以被落盤。

總結

到此這篇關于MYSQL中binlog優化思考的文章就介紹到這了,更多相關MYSQL binlog優化思考內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MySQL系列之redo log、undo log和binlog詳解
  • MySQL binlog_ignore_db 參數的具體使用
  • MySQL中使用binlog時格式該如何選擇
  • 詳解監聽MySQL的binlog日志工具分析:Canal
  • MySQL8.0中binlog的深入講解
  • Mysql數據庫清理binlog日志命令詳解
  • Mysql數據庫監聽binlog的開啟步驟
  • 如何區分MySQL的innodb_flush_log_at_trx_commit和sync_binlog

標簽:澳門 白銀 益陽 秦皇島 恩施 杭州 寧夏 定西

巨人網絡通訊聲明:本文標題《MYSQL中binlog優化的一些思考匯總》,本文關鍵詞  MYSQL,中,binlog,優化,的,一些,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MYSQL中binlog優化的一些思考匯總》相關的同類信息!
  • 本頁收集關于MYSQL中binlog優化的一些思考匯總的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产午夜精品一区二区三区嫩草| 一区二区三区在线视频免费观看| 国产精品久线在线观看| 一区二区三区中文在线观看| 麻豆成人av在线| 欧美婷婷六月丁香综合色| 久久综合资源网| 天涯成人国产亚洲精品一区av| 国产成人欧美日韩在线电影| 欧美日韩精品三区| 亚洲品质自拍视频网站| 国产精品亚洲一区二区三区在线| 欧美日韩激情一区二区| 亚洲免费视频成人| 99久久夜色精品国产网站| ww亚洲ww在线观看国产| 美国av一区二区| 欧美精品久久一区| 亚洲激情校园春色| 99麻豆久久久国产精品免费优播| 久久蜜桃香蕉精品一区二区三区| 麻豆精品视频在线观看视频| 欧美视频你懂的| 亚洲成人av在线电影| 欧美亚洲国产一区二区三区| 亚洲欧美一区二区三区国产精品| 丰满少妇久久久久久久| 中文在线资源观看网站视频免费不卡| 国产一区二区免费在线| 久久久久国产精品麻豆| 国产精品91xxx| 国产丝袜在线精品| 国产成人精品一区二| 久久久国际精品| 成人免费高清视频在线观看| 国产午夜精品理论片a级大结局| 国产一区二区美女| 国产欧美日韩在线| 91亚洲资源网| 天天综合天天做天天综合| 91精品国产综合久久精品图片 | 中文字幕成人在线观看| 成人美女视频在线观看18| 国产精品剧情在线亚洲| 日本电影亚洲天堂一区| 亚洲h在线观看| 日韩美女在线视频 | 93久久精品日日躁夜夜躁欧美| 国产精品久久影院| 欧美亚洲综合在线| 免费看欧美女人艹b| 国产精品久久久久一区二区三区 | 精品久久久久久最新网址| 韩日欧美一区二区三区| 国产精品久久综合| 欧美日韩视频在线一区二区| 蜜臀av亚洲一区中文字幕| 国产日韩欧美激情| 欧美视频一区二| 黄色成人免费在线| 亚洲欧美日韩精品久久久久| 欧美一区二区三区成人| 处破女av一区二区| 日韩精品乱码免费| 国产女人18毛片水真多成人如厕| 91久久精品日日躁夜夜躁欧美| 亚洲6080在线| 国产精品日产欧美久久久久| 欧美在线高清视频| 国产精品1024久久| 丝袜美腿亚洲色图| 国产精品麻豆视频| 日韩欧美成人激情| 91久久免费观看| 国产乱国产乱300精品| 亚洲国产中文字幕在线视频综合| 久久精品亚洲一区二区三区浴池| 欧美亚洲动漫另类| 成人av网在线| 国内一区二区在线| 亚洲va韩国va欧美va精品| 欧美国产在线观看| 欧美mv日韩mv国产网站app| 在线精品视频免费观看| 懂色av一区二区三区免费观看| 日韩影视精彩在线| 亚洲欧美日韩系列| 国产精品丝袜久久久久久app| 日韩欧美一级在线播放| 欧美午夜一区二区三区免费大片| 日韩av不卡在线观看| 亚洲色图视频网| 成人爱爱电影网址| 亚洲激情六月丁香| 国产精品福利电影一区二区三区四区| 欧美日韩综合色| 99久久国产综合色|国产精品| 精品一区精品二区高清| 美女视频免费一区| 午夜国产精品影院在线观看| 夜夜亚洲天天久久| 亚洲蜜臀av乱码久久精品| 国产精品久久久久久久蜜臀 | 国产精品99精品久久免费| 久久国产精品区| 精品一区二区日韩| 韩国一区二区三区| 国产一区中文字幕| 国产最新精品免费| 国产成人在线视频免费播放| 国产精品资源在线观看| 国产精品一二三四| 国产ts人妖一区二区| 丰满亚洲少妇av| 91美女片黄在线观看| 色婷婷一区二区| 欧美写真视频网站| 欧美色窝79yyyycom| 欧美日韩国产精品成人| 欧美精品xxxxbbbb| 精品卡一卡二卡三卡四在线| 久久久久久久久久久久久久久99 | 久久超碰97中文字幕| 国内成人精品2018免费看| 高清在线成人网| 91在线播放网址| 欧美午夜不卡在线观看免费| 欧美一三区三区四区免费在线看 | 波多野结衣中文一区| 日韩亚洲欧美一区| 日韩一区二区三区视频| 国产视频一区二区在线| 国产精品美女久久久久av爽李琼| 亚洲同性同志一二三专区| 亚洲欧美偷拍另类a∨色屁股| 亚洲成精国产精品女| 久久成人免费网站| 成人免费视频视频| 欧美日韩中字一区| 精品电影一区二区| 最好看的中文字幕久久| 日韩精品欧美精品| 国产成+人+日韩+欧美+亚洲| 91极品视觉盛宴| 欧美精品一区二区三区高清aⅴ| 国产精品免费久久| 日韩成人一级片| 成人av资源站| 日韩一级片在线观看| 最新不卡av在线| 久色婷婷小香蕉久久| 91国产丝袜在线播放| 精品久久人人做人人爰| 亚洲精品视频一区二区| 美女视频黄a大片欧美| 日本久久一区二区| 久久欧美中文字幕| 亚洲一区二区四区蜜桃| 国产精品影视在线| 欧美系列在线观看| 国产精品麻豆欧美日韩ww| 美女视频一区在线观看| 欧美中文字幕一二三区视频| 国产亚洲精品免费| 毛片基地黄久久久久久天堂| 色偷偷成人一区二区三区91| 国产欧美一区二区精品忘忧草| 日韩制服丝袜av| 91久久国产综合久久| 国产精品三级视频| 精品在线你懂的| 欧美一区二区三区播放老司机| 亚洲裸体在线观看| 国产大片一区二区| 日韩精品专区在线影院重磅| 亚洲女与黑人做爰| 成人激情图片网| 久久久国产精华| 国产精品 欧美精品| 日韩免费高清av| 三级亚洲高清视频| 欧美日韩高清一区二区不卡 | 国产精品久久网站| 国产成人综合网| 精品欧美久久久| 久草这里只有精品视频| 91精品国产欧美一区二区成人| 亚洲午夜羞羞片| 欧美日韩国产大片| 五月天欧美精品| 欧美美女黄视频| 亚洲第一电影网| 日韩一区二区三区四区 | 亚洲国产日韩av| 欧美性极品少妇| 丝袜脚交一区二区| 日韩三级伦理片妻子的秘密按摩| 日韩电影免费在线| 久久综合成人精品亚洲另类欧美| 久久草av在线|