首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mysql-innodb引擎之checkpoint

mysql-innodb引擎之checkpoint

原创
作者头像
一只羊羊
修改2025-06-17 16:04:18
修改2025-06-17 16:04:18
1530
举报
文章被收录于专栏:mysqlmysql

背景

缓冲池的出现是缓解磁盘和cpu之间的速度问题。但是缓存池大小是有一定限制的,所以缓存池需要指定一些策略来保证缓冲池的循环使用,比如lru算法、checkpiont等

解决的问题

  1. 服务器宕机之后加速数据库的恢复速度,数据恢复只需要从checkpoint之后的点开始恢复即可。
  2. 减少缓冲池的持续增大,将checkpoint之前的数据同步到磁盘,减少缓存的占用

应用

1.lru算法溢出的页里面包含脏页,执行checkpoint将脏页刷新到磁盘

2.flush队超过设定比例,执行checkpoint将脏页刷新到磁盘

3.free队列没有可使用的页,执行checkpoint将脏页刷新到磁盘

4.master线程定时执行checkpoint,执行checkpoint将脏页刷新到磁盘

执行过程

1.记录事务日志的最后一个Checkpoint位置

2.建脏页刷新到磁盘

3.更新checkpoint最新位置信息

触发时机

1.定时触发

2.脏页数量太多

3.重做日志不可用

4.空闲页数量不够

查看innodb状态观察具体信息

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 解决的问题
  • 应用
  • 执行过程
  • 触发时机
  • 查看innodb状态观察具体信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档