1.undo log日志回滚原理
undo log记录的日志很简单。比如:
- 当在缓存页执行一个insert语句,那么此时在undo log日志里,对这个操作日志就有一个主键和对应的delete操作,保证能把这次insert操作回退;
- 如果执行的delete语句,那么就会把删除的这条数据记录下来,如果回滚,就会执行对应的insert操作;
- 如果执行的update语句,那么就会把更新之前的那个值记录下来,回滚的时候再update一下,把之前更新的旧值更行回去。
2.undo log日志结构
Insert语句的undo log的类型是TRX_UNDO_INSERT_REC,里面主要包含:
- 这条日志的开始位置;
- 主键的各列长度和值;
- 表id;
- undo log日志编号;
- undo log日志类型;
- 这条日志的结束位置。

