美文网首页
MySQL - 日志 - undo log

MySQL - 日志 - undo log

作者: 52HzBoo | 来源:发表于2021-05-11 06:36 被阅读0次

概述

在数据修改的时候,不仅记录了redo,还记录了相对应的undo,如果因为某些原因导致事务失败或回滚了,可以借助该undo进行回滚。

undo log和redo log记录物理日志不一样,它是逻辑日志。可以认为当delete一条记录时,undo log中会记录一条对应的insert记录,反之亦然,当update一条记录时,它记录一条对应相反的update记录。

可以简单的总结:

  • undo log 记录着修改前的数据, 用于事务失败回滚。(具备事务的:原子性)
  • redo log 记录着修改后的数据,可以用来恢复未写入日志,将已成功事务持久化数据库(持久性)。(崩溃恢复时,未commit的事务将被回滚 )

undo log的两个作用:

  • 提供回滚
  • 多版本控制(MVCC)。

回滚机制

多版本控制MVCC

参考:https://juejin.im/entry/5ba0a254e51d450e735e4a1f?spm=a2c4e.10696291.0.0.5c4f19a4MSUQpP
参考:https://blog.csdn.net/bohu83/article/details/81568341
参考:https://www.jianshu.com/p/d829df873332

相关文章

网友评论

      本文标题:MySQL - 日志 - undo log

      本文链接:https://www.haomeiwen.com/subject/ntxgdltx.html