InnoDB的事务日志包括redo log和undo log。
redo log
redo log是重做日志,用来保障已提交事务的ACID特性。
redo log 通常是物理日志(磁盘),记录的是数据页的物理修改,而不是某一行或某几行修改。它用来恢复提交后的物理数据页。
redo log的作用:
数据库事务提交后,必须将更新后的数据刷到磁盘上,以保证ACID特性。可以将修改行先写到redo log里,再定期将数据刷到磁盘上,这样可以极大地提高性能。假如数据库崩溃,数据库重启后,会重做redo日志里的内容,以保证已提交的事务对数据产生的影响都刷到磁盘上。
undo log
undo log 用来回滚行记录到某个版本。一般是逻辑日志,根据每行记录进行记录。
undo log 的作用:
数据库事务未提交时,会将事务修改数据的镜像存放到undo日志里,当事务回滚时,或者数据库奔溃时,可以利用undo日志,撤销未提交事务对数据库产生的影响。
以上参考:https://mp.weixin.qq.com/s/JLV8GEcF1z4D8oiDhFo6-g、https://mp.weixin.qq.com/s/fmzaIobOihKKZ7kyZQInTg