mysql:undo log和redo log

undo log记录的是数据修改前的旧值,用于事务回滚和MVCC(多版本并发控制)。

比如有一个事务,要修改id=1的记录

begin;

update account set balance=50  where id=1;

执行update时,会先记录undo log再修改数据。这样,如果执行rollback,就会根据undo log恢复数据。

mvcc用于实现读写并发时,不加锁也能读到历史数据,即快照读。

 

redo log用于记录数据页做过什么修改,崩溃恢复。

posted on 2017-04-17 23:38  koushr  阅读(578)  评论(0)    收藏  举报

导航