天天看點

面試二十五、mysql之undo log和redo log

1、undo log

  1)實作了事務的原子性

  2)儲存了事務前一個版本的資料

  3)可用于復原

  4)可以恢複到對應版本的資料

  5)mvcc用它實作

2、redo log

  1)實作了事務的持久性

  2)儲存了事務的行為(記錄事務對資料頁做了哪些修改)

  3)可以恢複的最新版本的資料

3、mysql建立log流程:

  2-5是在記憶體中進行

  1)表中原先a的值為1

  2)事務要将a修改為2

  3)undo log記錄a=1的舊記錄

  4)事務将a修改為2

  5)redo log記錄“事務将a修改為2”

  6)将redo log寫入磁盤

  7)将undo log寫入磁盤

  8)将資料寫入磁盤

  9)事務送出

4、資料恢複