redo log

redo log

redo log所做的事情就是在重启或者宕机以后,恢复到之前的正常状态。
其中各种配置的设定也是有一定学问的。

redolog的大小设定

  • 它不能设置的太大,因为每次遍历一个大文件也是很耗费时间的
  • 同时也不能设置的很小,因为当redolog不够用的时候,就会触发checkpoint进行脏页刷新以及redolog的checkpoint刷新,重写弄出来空间

redolog的格式问题

不同于binlog有RAW,STATEMENT,MIX三种格式,redolog记录的是物理写入的情况。binlog是只在提交事务的时候才写入,而redolog有刷新时间,有满了以后就触发checkpoint。

redolog是有缓冲的

mysql里面很喜欢使用缓冲,redolog同样也配备了缓冲,每次写入不是一条一条的插入,而是先到缓冲中集合再一起写入

什么时候写入重做日志

1. 重做日志刷新

  • 每一秒master thread都会对其进行写入
  • 事务提交了
  • 重做日志满了,触发checkpoint

2. 重做日志的写入

我们知道,重做日志是先写入到重做日志缓冲里面的,然后当重做日志缓冲满了512M以后,也就是一个扇区的大小,这时候再统一插入。
一个扇区的大小一起插入,就可以保证,要么这次插入成功,要么这次插入失败,这就是所谓的原子性。

posted @ 2022-10-18 09:23  azxx  阅读(84)  评论(0)    收藏  举报