首先,從體系結構上來講:
binlog由數據庫上層(server 層)生成,是SQL執行的邏輯日志。
redo log是存儲引擎(innodb事務引擎)層面的物理格式的日志,記錄的是對於每個頁的修改。
作用上的區分:
binlog用來進行數據恢復(基於時間點的) 和 主從復制。
redolog用來保證事務的持久性,以及 crash recovery 。
生成和結束的時間機制也不一樣:
InnoDB的redolog在事務進行中不斷地被寫入,而binlog在事務提交完成后進行一次寫入
所以事務提交過程中,redo-log 先封口,然后在server 層生成bin-log.