1 基本概念
- undo log(回滚日志) :是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC。
- redo log(重做日志) :是 Innodb 存储引擎层生成的日志,实现了事务中的持久性,主要用于掉电等故障恢复;
- binlog (归档日志) :是 Server 层生成的日志,主要用于数据备份和主从复制;
先来看一张sql执行逻辑图,这样对三种log的使用有更直观的认知:
最后写入binLog文件,redo事务状态变更为commit
2 Undo Log
2.1 为什么需要 undo log?
我们在执行执行一条“