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、資料恢複