什么是 undo log?有什么用?

undo log,也称为回滚日志,是MySQL数据库中InnoDB存储引擎的一个重要概念。

在数据库中,undo log主要有两个作用:

  1. 提供了事务的回滚功能。当一个事务执行过程中出现错误,或者在一定的情况下需要主动回滚一个事务时,InnoDB可以通过undo log把数据恢复到事务开始之前的状态。

  2. 为了实现多版本并发控制(MVCC)提供了一种机制。在执行读操作时,为了能读取到一个一致性的快照,需要通过undo log来获取数据在某个时间点的版本。

undo log的存储形式是逻辑日志,记录的是数据被修改的逻辑情况,比如“某行数据的某列从A修改为B”。

需要注意的是,undo log也是InnoDB存储引擎特有的,其他存储引擎不一定有类似的机制。

发表评论

后才能评论