InnoDB事务日志包括redo log和undo log。redo log是重做日志,提供前滚操作,undo log是回滚日志,提供回滚操作。undo log主要存储的是(反向的)逻辑日志,比如我们要insert一条数据,那undo log会记录的一条对应(相反)的delete日志;redo log记录的是一次操作对于物理存储的某个页上进行了什么修改。 undo log主要有两个作用:回滚和多版本并发控制(MVCC),由于存储的是相反的逻辑日志,只要执行undo log中的逻辑,就能得到前一个版本的数据。 redo log在事务开始时就开始记录数据的变更信息,因为redo log是顺序I/O而且记录的是物理变化,因而文件体积小,写入速度很快,如果数据库发生了故障,数据还没来得及写入磁盘,就可以根据redo log对物理数据页进行恢复,将其恢复到最后一次提交后的状态。

相关推荐

牛客网
牛客企业服务