MySQL检查点机制 - CheckPoint

MySQL的Checkpoint机制用于缩短数据库恢复时间,减少宕机恢复时的重做日志处理。它分为sharp和fuzzy两种类型,fuzzy又细分为Master Thread、FLUSH_LRU_LIST、Async / Sync Flush和Dirty Page too much等子类型。通过对脏页的管理,避免了全量恢复,提高了系统性能。
摘要由CSDN通过智能技术生成

1、情景展现


思考一下这个场景:如果重做日志可以无限地增大,同时缓冲池也足够大,那么就没有必要将缓冲池中页的新版本刷新回磁盘,只需要将重做日志实时刷新到磁盘即可。因为当发生宕机时,完全可以通过重做日志来恢复整个数据库系统中的数据到宕机发生的时刻。

这需要两个前提条件:
(1)缓冲池可以缓存数据库中所有的数据;
(2)重做日志可以无限增大;
这两点正常情况下几乎不可实现,且衍生出来的另一严重问题:当数据库发生宕机时,需要通过日志恢复所有数据,非常耗时。

2、Checkpoint作用


  • 缩短数据库的恢复时间
    当数据库发生宕机时,数据库不需要重做所有的日志,因为 Checkpoint 之前的页都已经刷新回磁盘。数据库只需对 Checkpoint 后的重做日志进行恢复,这样就大大缩短了恢复的时间。
  • 缓冲池不够用时,将脏页刷新到磁盘
    当缓冲池不够用时,根据 LRU 算法会溢出最近最少使用的页,若此页为脏页,那么需要强制执行 Checkpoint ,将脏页也就是页的新版本刷回磁盘。
  • 重做日志不可用时
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值