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以后,也就是一个扇区的大小,这时候再统一插入。
一个扇区的大小一起插入,就可以保证,要么这次插入成功,要么这次插入失败,这就是所谓的原子性。