事务已经提交,数据页没落盘为什么仍能恢复后端随身听

事务已经提交,数据页没落盘为什么仍能恢复

21分钟 ·
播放数2
·
评论数0

后端随身听|事务已经提交,数据页没落盘为什么仍能恢复

事务提交成功时,InnoDB 通常不需要立刻把所有修改后的数据页写回数据文件。那机器突然断电后,数据库为什么还能恢复已提交的数据?

这一集从缓冲池和脏页开始,讲清 InnoDB 如何通过预写日志、重做日志、检查点和后台刷页实现崩溃恢复,并区分撤销日志、二进制日志与双写缓冲各自解决的问题。

重点内容:

  • 为什么事务提交不直接等待数据页落盘

  • 缓冲池、脏页和重做日志如何协作

  • 写入文件与真正刷盘有什么区别

  • 检查点如何限制崩溃恢复范围

  • 重做日志、撤销日志和二进制日志的职责区别

  • 双写缓冲如何处理数据页只写一半

  • 组提交如何降低刷盘成本

英文词对照:

  • InnoDB:MySQL 常用事务存储引擎

  • Buffer Pool:缓冲池

  • Dirty Page:脏页

  • Redo Log:重做日志

  • Undo Log:撤销日志

  • Binary Log:二进制日志

  • Write-Ahead Logging:预写日志

  • Checkpoint:检查点

  • Doublewrite Buffer:双写缓冲

  • Group Commit:组提交