redoLog

mysql对数据进行修改时,会先将数据从磁盘加载到内存,将内存中的数据进行修改,但是修改完成后不会立即刷回磁盘(降低io开销提高速度),为了避免脏页未刷回磁盘服务崩溃造成数据丢失,innodb使用redolog保障数据
图片来源 https://www.jianshu.com/p/4bcfffb27ed5

redolog一定是在事务提交前先行写道磁盘或者缓冲区,真正提交后修改状态,如下图所示:

如果binlog开启,为了保证binglog与redolog数据一致性,执行顺序发生变化如下所示:

redlog页不一定是实时刷新到数据库可以根据设置分为三种情况
1、每次修改刷到磁盘
2、直接刷到osbuffer然后定期刷到磁盘
3、订期刷到osbuffer并刷到磁盘

posted @ 2021-02-26 15:17  犬犬呀  阅读(76)  评论(0)    收藏  举报