InnoDB存储引擎读书笔记-Checkpoint技术

事务数据库系统普遍采用Write Ahead Log策略,即当事务提交时,先写重做日志,再修改页。
当由于宕机导致数据丢失时,通过重做日志完成数据的恢复。

Checkpoint技术

检查点技术是为了解决以下几个问题:

  1. 缩短数据库的恢复时间:数据库宕机时只需要对Checkpoint之后的重做日志进行恢复。
  2. 缓冲池不够用时,将脏页刷新到磁盘:缓冲池不够用时,根据LRU算法溢出最近最少使用的页,如果此页为脏页,需要强制执行Checkpoint,将脏页刷回磁盘。
  3. 重做日志不可用时,刷新脏页:数据库宕机时使用重做日志恢复数据库,被重用的部分不再需要,可以被覆盖重用。若此时重做日志还需要使用,必须强制产生Checkpoint,将缓冲池中的页刷回磁盘。

两种Checkpoint方式

Sharp Checkpoint

发生在关闭数据库时将所有的脏页刷回磁盘,是默认的工作方式。

Fuzzy Checkpoint

只刷新一部分脏页。
几种情况:

  1. Master Thread Checkpoint
    Master Thread异步的从缓冲池脏页列表中刷新一定比例的页到磁盘。
  2. FLUSH_LRU_LIST Checkpoint
    InnoDB存储引擎需要不保证LRU列表有差不多100个空闲页可供使用,如果不够,会将LRU列表尾端的页移除。如果这些页有脏页,那么需要进行Checkpoint.
  3. Async/Sync Flush Checkpoint
    重做日志不可用,需要强制将一些页刷新回磁盘,此时脏页是从脏页列表中取的。
  4. Dirty Page too much Checkpoint
    脏页数量太多,导致InnoDB存储引擎强制进行Checkpoint,为了保证缓冲池中有足够可用的页。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值