§09 存储进阶
InnoDB 日志体系
一条 UPDATE 的日志旅程:undo 回滚 / redo 恢复 / binlog 复制,两阶段提交是纽带。
InnoDB 日志体系
伪代码
1
-- UPDATE account SET balance = balance - 100
2
① Buffer Pool: 加载页 → 修改内存页
3
② undo log: 记录旧值(回滚 + MVCC 读旧版本)
4
③ redo log buffer: 记录物理变更(崩溃恢复)
5
④ binlog: 记录逻辑变更(复制/归档)
6
⑤ 两阶段提交: redo prepare → binlog write → redo commit
7
⑥ 后台线程择机把脏页刷回磁盘