介绍
对数据库进行 增删改 时,会先产生 redo log ,然后产生 undo log
redo log(重做日志)
redo log 属于 innodb 存储引擎层
当事务提交(commit)时,先将事务写入到 redo log
在服务器宕机丢失数据时,可以通过 redo log恢复数据
作用
- 保证事务的持久性
- 为了在数据库异常宕机重启后,能恢复到宕机前的运行状态
- 为了比较redo log中的checkpoint来刷脏
特点
- 顺序写
- 数据库运行时不需要对 redo log 进行读取操作
undo log(回滚日志)
undo log 属于innodb存储引擎层
作用
事务回滚:InnoDB存储引擎回滚时,对于每个INSERT,会完成一个DELETE;
对于每个DELETE,会执行一个INSERT;
对于每个UPDATE,会执行一个相反的UPDATE,将修改前的行放回去。MVCC(多个行版本控制):当用户读取一行记录时,若该记录已经被其他事务占用,当前事务可以通过undo log读取之前的行版本信息,以此实现一致性非锁定读取
特点
- undo log 是需要进行随机读写的
- undo log 会产生 redo log,因为 undo log 也需要持久性的保护
感谢:
https://blog.csdn.net/weixin_39841589/article/details/109460683
https://blog.csdn.net/wangdamingll/article/details/107821693
https://www.jb51.net/article/202911.htm