开发者社区> 问答> 正文

MySQL 的事务是如何通过日志来实现的?

MySQL 的事务是如何通过日志来实现的?

展开
收起
7大帅 2021-12-14 23:23:02 928 0
1 条回答
写回答
取消 提交回答
  • 因为事务在修改页时,要先记 undo,在记 undo 之前要记 undo 的 redo, 然后修改数据页,再记数据页修改的 redo。 Redo(里面包括 undo 的修改) 一定要比数据页先持久化到磁盘。

    当事务需要回滚时,因为有 undo,可以把数据页回滚到前镜像的 状态,崩溃恢复时,如果 redo log 中事务没有对应的 commit 记录,那么需要用 undo把该事务的修改回滚到事务开始之前。

    如果有 commit 记录,就用 redo 前滚到该事务完成时并提交掉。

    2021-12-14 23:36:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
Kubernetes下日志实时采集、存储与计算实践 立即下载
日志数据采集与分析对接 立即下载

相关镜像