MySQL日誌與索引QA

  首先再明確一下MySQL的兩階段提交過程,如下圖所示:在這裏插入圖片描述

  如果在時刻1 數據庫宕機,則將事務回滾
  如果在時刻2 數據庫宕機,則如果binlog 已經完整寫好,則提交事務;否則回滾事務。

  Binlog存在固定的完整格式,statement格式的binlog,最後會有COMMIT;row格式的binlog,最後會有一個XID event,除此之外,還有check sum來進行內容校驗。而redo log與binlog通過XID進行關聯。
  爲什麼binlog寫完整了就一定要提交事務?
  因爲binlog會被應用到主從同步,如果從庫執行了binlog而主庫恢復的時候回滾事務,則會發生主從不一致。
Redo log buffer用於緩存一個事務中的多個更新內容,等到commit的時候寫入磁盤文件。

MySQL實戰45講

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章