后端随身听|事务已经提交,数据页没落盘为什么仍能恢复
事务提交成功时,InnoDB 通常不需要立刻把所有修改后的数据页写回数据文件。那机器突然断电后,数据库为什么还能恢复已提交的数据?
这一集从缓冲池和脏页开始,讲清 InnoDB 如何通过预写日志、重做日志、检查点和后台刷页实现崩溃恢复,并区分撤销日志、二进制日志与双写缓冲各自解决的问题。
重点内容:
为什么事务提交不直接等待数据页落盘
缓冲池、脏页和重做日志如何协作
写入文件与真正刷盘有什么区别
检查点如何限制崩溃恢复范围
重做日志、撤销日志和二进制日志的职责区别
双写缓冲如何处理数据页只写一半
组提交如何降低刷盘成本
英文词对照:
InnoDB:MySQL 常用事务存储引擎
Buffer Pool:缓冲池
Dirty Page:脏页
Redo Log:重做日志
Undo Log:撤销日志
Binary Log:二进制日志
Write-Ahead Logging:预写日志
Checkpoint:检查点
Doublewrite Buffer:双写缓冲
Group Commit:组提交

