mysql 為了提升性能不會把每次的修改都實時同步到磁盤,而是會先存到Boffer Pool(緩沖池)里頭,把這個當作緩存來用。然后使用后台線程去做緩沖池和磁盤之間的同步。
那么問題來了,如果還沒來的同步的時候宕機或斷電了怎么辦?還沒來得及執行上面圖中紅色的操作。這樣會導致丟部分已提交事務的修改信息!
所以引入了redo log來記錄已成功提交事務的修改信息,並且會把redo log持久化到磁盤,系統重啟之后在讀取redo log恢復最新數據。
總結:
redo log是用來恢復數據的 用於保障,已提交事務的持久化特性