MYSQL INNODB的REDO LOG與BINLOG的區別

MYSQL INNDODB的REDO LOG與BINLOG從表面上看來是非常相似的。然而本質上有很大的區別:

第一:REDO LOG是在INNODB存儲引擎層產生,而BINLOG是MYSQL數據庫的上層產生的,並且二進制日誌不僅僅針對INNODB存儲引擎,MYSQL數據庫中的任何存儲引擎對於數據庫的更改都會產生二進制日誌。

第二:兩種日誌記錄的內容形式不同。MYSQL的BINLOG是邏輯日誌,其記錄是對應的SQL語句。而INNODB存儲引擎層面的重做日誌是物理日誌。

第三:兩種日誌與記錄寫入磁盤的時間點不同,二進制日誌只在事務提交完成後進行一次寫入。而INNODB存儲引擎的重做日誌在事務進行中不斷地被寫入,並日志不是隨事務提交的順序進行寫入的。

二進制日誌僅在事務提交時記錄,並且對於每一個事務,僅在事務提交時記錄,並且對於每一個事務,僅包含對應事務的一個日誌。而對於INNODB存儲引擎的重做日誌,由於其記錄是物理操作日誌,因此每個事務對應多個日誌條目,並且事務的重做日誌寫入是併發的,並非在事務提交時寫入,做其在文件中記錄的順序並非是事務開始的順序。

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