innodb事务日志包括redo log和undo log。redo log是重做日志,提供前滚操作,undo log是回滚日志,提供回滚操作。
- redo log通常是物理日志,记录的是数据页的物理修改,而不是某一行或某几行修改成怎样怎样,它用来
恢复
事务提交后的物理数据页(恢复数据页,且只能恢复到最后一次提交的位置)。bin log主要用来做数据归档,但是它并不具备崩溃恢复的能力。 - undo用来
回滚
行记录到某个版本。undo log一般是逻辑日志,根据每行记录进行记录。
redo log和bin log区别
- 功能不同,binlog主要用于归档,而redo log主要用于崩溃恢复
- 内容不同,binlog是逻辑日志,而redo log是物理日志
- 写入时机不同,binlog是server层记录的,所有存储引擎可共享,而redo log是InnoDB引擎特有的
- 写入方式不同,binlog容量无限,追加写入,而redo log容量有限,循环写入
网友评论