首页 > 数据库技术 > 详细

InnoDB事务日志之重做日志redo log与回滚日志undo log

时间:2018-05-26 15:14:30      阅读:485      评论:0      收藏:0      [点我收藏+]

最近在看《mysql技术内幕》一些笔记记录在这里。

 

其实存储引擎优化思想就是想方设法地去解决cpu速度和磁盘速度不匹配的问题,以及怎么样防止数据库宕机导致的数据丢失。

那么为了解决cpu和磁盘速度不匹配的问题,数据库设置了一个缓冲池:当要修改数据时,想磁盘中的数据拷贝到内存的缓冲池中,然后修改缓冲池中的数据,最后再在某一时刻刷回磁盘。

为了防止刷回磁盘的过程中意外宕机的数据丢失,innodb中,采用使用日志的方式:Write Ahead Log策略。通过先写日志再写数据的方式:但事务提交时,先写重做日志,再修改页。然后再次开机恢复数据库时,可以通过重做日志来恢复以及提交的事务,继续完成上次的事务。但是还可能是数据库宕机时事务还未提交,这时候就需要回滚日志undo log来回滚事务到事务开始前的状态。

 

 

1.重做日志redo log

用于在实例故障恢复时,继续那些已经commit但数据尚未完全回写到磁盘的事务。

 

2.回滚日志undo log

用于在实例故障恢复时,借助undo log将尚未commit的事务,回滚到事务开始前的状态。

InnoDB事务日志之重做日志redo log与回滚日志undo log

原文:https://www.cnblogs.com/shawshawwan/p/9092842.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!