innodb redolog理解

1、在干净关闭mysql时,重做日志应该逻辑上为空。意思是在检查点LSN之后没有要恢复的记录。但是,日志文件仍可能包含一些旧数据(在恢复过程中不使用)。

2、对数据页面内容的每次更改都必须通过mtr完成,该事物由mtr_commit()函数提交完成。

3、在提交mtr前,在mtr的内部缓冲区内收集更改日志。它包含多个日志记录,提交mtr时,所有日志记录都将写入一组日志记录中的日志缓冲区。包括:

  1. 计算日志记录的总数据字节数。
  2. 保留日志记录的空间。为一组日志记录分配lsn值的范围。
  3. 日志记录将写入日志缓冲区中的保留空间。
  4. 已修改的页面标记为脏页并移动到刷新列表。所有脏页都标有相同范围的lsn值。
  5. 保留空间关闭。

后台线程负责将日志缓冲区中的新更改写入日志文件。需要持久记录的用户线程必须等到日志刷新到所需的点。

重做日志刷新图解:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值