(二)checkpoint技术学习笔记

1. Checkpoint技术主要解决的问题:
  • 缩短数据库的恢复时间;

  • 缓冲池不够用时,将脏页刷新到磁盘;

  • 重做日志不可用时。刷新脏页。

2. Checkpoint分类

​ 在InnoDB引擎中,Checkpoint发生的时间、条件及脏页的选择等都非常复杂。而Checkpoint所做的事情无外乎是将缓冲池中的脏页刷新回到磁盘。不同之处在于每次刷新多少页到磁盘、每次从哪里取脏页、以及什么时间触发Checkpoint。在InnoDB内部有两种Checkpoint,分别为:Sharp Checkpoint和Fuzzy Checkpoint。

  • Sharp Checkpoint 发生在数据库关闭时将所有的脏页都刷新回磁盘。
  • Fuzzy Checkpoint 只刷新部分脏页,而不是刷新所有的脏页回磁盘。
3. Fuzzy Checkpoint可能发生的几种情况
  • Master Thread Checkpoint
  • FLUSH_LRU_LIST Checkpoint
  • Async/Sync Flush Checkpoint
  • Dirty page too much Checkpoint

Master Thread Checkpoint ,差不多一每秒或者每十秒的速度从缓冲池的脏页列表刷新一定比例的页回磁盘。这个过程是异步的,不会阻塞用户查询线程。

FLUSH_LRU_LIST Checkpoint 由于InnoDB存储引擎需要保证LRU列表中需要有差不多100个空闲也可供使用。若没有100个空闲页,那么InnoDB存储引擎会将LRU列表尾端的页移除。如果这些页有脏页,那么就需要Checkpoint,而这些页来自LRU列表的,因此成为FLUSH_LRU_LIST Checkpoint。不会阻塞用户查询线程。

Async/Sync Flush Checkpoint 指的是重做日志文件不可用的情况,这是强制将一些页刷新回磁,这些页是从脏页列表中选取的。Async/Sync Flush Checkpoint的目的是为了保证重做日志的循环使用的可用性。Mysql5.6版本之后不会阻塞用户查询线程。

Dirty page too much Checkpoint 是脏也得数量太多导致InnoDB存储引擎强制进行Checkpoint。目的是为了保证缓冲池中有足够可用的页。 使用命令 show variables like “innodb_max_dirty_page_%”; 可查看innodb_max_dirty_pages_pct 的值为75,表示当前缓冲池中脏页的数量占据75%时,强制进行Checkpoint,刷新一部分脏页到磁盘。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值