MySQL++:binlog edolog ndolog區別

binlog       :二進制日誌是mysql-server層的,主要是做主從複製,時間點恢復使用。

redo log   :重做日誌是InnoDB存儲引擎層的,用來保證事務安全。

undo log  : 回滾日誌保存了事務發生之前的數據的一個版本,可以用於回滾,同時可以提供多版本併發控制下的讀(MVCC),也即非鎖定讀。redo log。

redo log在事務沒有提交前,每一個修改操作都會記錄變更後的數據,保存的是物理日誌->數據。


 

binlog 是一個二進制格式的文件,用於記錄用戶對數據庫更新的SQL語句信息,但對庫表等內容的查詢不會記錄由於是二進制文件,

需使用mysqlbinlog解析查看主要作用:

用於數據庫的主從複製及數據的增量恢復ROW (行模式) :

記錄哪條數據修改了記錄的是修改的那條記錄的全部數據,即使只更新了-個字段, binlog 裏也會記錄所有字段的數據Statement (語句模式) :

每一條會修改數據的sq都會記錄在binlog中作用:用於複製,在主從複製中,從庫利用主庫上的binlog進行重播,實現主從同步。


undo log有兩個作用:

  提供回滾和多個行版本控制(MVCC)。

  在數據修改的時候,不僅記錄了redo,還記錄了相對應的undo,如果因爲某些原因導致事務失敗或回滾了,可以藉助該undo進行回滾。

  undo log是採用段(segment)的方式來記錄的,每個undo操作在記錄的時候佔用一個undo log segment。

作用:保存了事務發生之前的數據的一個版本,可以用於回滾,同時可以提供多版本併發控制下的讀(MVCC),也即非鎖定讀


redo log作用:

  確保事務的持久性。

  防止在發生故障的時間點,尚有髒頁未寫入磁盤,在重啓mysql服務的時候,根據redo log進行重做,從而達到事務的持久性這一特性。

內容:物理格式的日誌,記錄的是物理數據頁面的修改的信息,其redo log是順序寫入redo log file的物理文件中去的。

 

 

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