mysql事务相关的日志

Posted by Clear Blog on April 12, 2018

undo log:

为了实现事务原子性,要么全部完成commit,要么全部回滚rollback,Innodb用于实现mvcc(多版本并发控制) 例如:将user=’A’ 改为 user=’B’,则undo log中会记录下user=’A’和事务版本等信息 一旦事务完成,所有修改必须被记录下,保证数据一致性

redo log:

如果使用undo log作为持久化数据,意味着修改数据和undo log必须同时写入磁盘持久化, 这必定带来巨大的磁盘io,解决方案为了平衡磁盘io和一致性,引入redo log。 数据和undo log可定时从缓冲刷至磁盘, 但是redo log必须实时写入磁盘,当系统奔溃时,可依据redo log进行数据重做。