innodb事务日志包括redo log和undo log。
-- redo log是重做日志,提供前滚操作,在事务ACID过程中,实现的是“D”持久化的作用。
-- undo log是回滚日志,提供回滚操作,在事务ACID过程中,实现的是“A、C”原子性和一致性的作用。

undo log不是redo log的逆向过程,其实它们都算是用来恢复的日志:

  1. redo log通常是物理日志,记录的是数据页的物理修改,而不是某一行或某几行修改成怎样怎样,它用来恢复提交后的物理数据页(恢复数据页,且只能恢复到最后一次提交的位置)。
  2. undo用来回滚行记录到某个版本。undo log一般是逻辑日志,根据每行记录进行记录。

这一节我没办法讲的很好,能力有限,不过找到了一个大神写的博客,写的非常专业:
详细分析MySQL事务日志(redo log和undo log)

最后修改于 2019-08-09 09:26:52
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇