InnoDB在什么情况下会触发检查点(checkpoint)?

本文详细解析了InnoDB触发检查点的不同情况,包括sharpcheckpoint与fuzzycheckpoint的区别、触发时机、关键参数如innodb_fast_shutdown和io_capacity等,以及如何通过监控指标来调整优化。

以下文章内容摘选自如下链接:
https://www.modb.pro/db/12071

InnoDB在什么情况下会触发检查点(checkpoint)?

(一)MySQL的checkpoint分类
1、sharp checkpoint(激烈检查点,要求尽快将所有脏页都刷到磁盘上,对I/O资源的占有优先级高)
2、fuzzy checkpoint(模糊检查点,会根据系统负载及脏页数量适当平衡,不要求立即将所有脏页写入磁盘,这事默认的方式)

(二)触发时机
1、数据库正常关闭时,即innodb_fast_shutdown=0时需要执行sharp checkpoint

2、redo log发生切换时或者redo log快满的时候进行fuzzy checkpoint

3、master thread每隔1秒或10秒定期进行fuzzy checkpoint

4、innodb保证有足够多的空闲page,如果发现不足,需要移除lru list末尾的page,如果这些page是脏页,那么也需要fuzzy checkpoint

5、innodb buffer pool中脏页比超过innodb_max_dirty_pages_pct时也会触发fuzzy checkpoint

(三)checkpoint相关参数及状态
1、innodb_fast_shutdown

2、innodb_io_capacity/innodb_io_capacity_max

3、innodb_lru_scan_depth

4、innodb_max_dirty_pages_pct/innodb_max_dirty_pages_pct_lwm

5、Innodb_buffer_pool_pages_dirty/Innodb_buffer_pool_pages_total

6、Innodb_buffer_pool_wait_free

以下为个人公众号,欢迎扫码关注:
image.png

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值