1. 为何需要checkpoint?
为了协调cpu与磁盘速度的差距,mysql内部设计了缓冲池。页的的操作首先会在缓冲池中完成。然后按照一定机制刷新新版本的页到磁盘。 但是在数据刷新到磁盘前可能宕机等导致数据丢失,会在事务提交时 先写重做日志再修改页保证了事务的持久性。用checkpoint可以解决重做日志过大,导致数据库恢复时间过长 具体参考 checkpoint。
2. 发生checkpoint时机
a. Master Thread 中的Checkpoint,大约以几秒或者每10秒的速度
从缓冲池的脏页列表中刷新一定比例的页回磁盘,过程是异步的
b. InnoDB要保证LRU列表中有足够的空白页,当没有足够的页,会从尾部移除一些页,如果
有脏页,则进行checkpoint.
c. 重做日志不可用
本文地址:https://blog.csdn.net/qq_22323251/article/details/107321212
如对本文有疑问, 点击进行留言回复!!
项目实战: CMDB自动化资产扫描(搞懂这个项目 算你没白学运维)
MySQL中建表时可空(NULL)和非空(NOT NULL)的用法详解
SSD原理及Pytorch代码解读——网络架构(二):特征提取网络及总体计算过程
网友评论