- 日志两种格式
- 物理的日志
- 记录完整的页
- 记录页中被修改的 内容
- 逻辑日志
- 记录执行的 SQL 语句
- 物理的日志
物理日志相对比较大,比如索引分裂是会影响很多记录,导致日志量很大
逻辑日志日志量会很小,但是会有部分执行 数据一致性问题
- 物理日志
- 优点:恢复时可直接通过日志覆盖,不依赖原页面上面的内容。并且是幂等的。
- 缺点:日志量很大
逻辑日志
- 优点:日志量小
- 缺点:
- 插入记录时 , 如果表中有多个索引 需要向B-TREE中插入记录,有可能第一个成功了第二个没有成功。
- 索引分裂时可能需要将页A中数据移动一半到B中,A页写入磁盘成功,B没有写入磁盘时发生了Crash
Innodb日志方式
- 采用逻辑与物理相结合 物理到Page Page内部是逻辑的(space id, page no, operation code, data)
- 虽然采取此方式可以解决部分执行问题 但是数据一致性还是无法解决(因为对于page内的信息使用逻辑日志进行记录,所以当出现坏块时,并不能解决)