MySQL笔记之Checkpoint机制

本文介绍了MySQL的Checkpoint机制,包括其作用、种类和LSN标记。Checkpoint用于将脏页刷新到磁盘,缩短数据库恢复时间,缓解缓冲池压力,并在Redo日志不可用时确保数据一致性。主要分为Sharp Checkpoint和Fuzzy Checkpoint两种类型,LSN作为版本标记,用于日志恢复。
摘要由CSDN通过智能技术生成

CheckPoint是MySQL的WAL和Redolog的一个优化技术。

一、Checkpoint机制

CheckPoint做了什么事情?将缓存池中的脏页刷回磁盘。

checkpoint定期将db buffer的内容刷新到data file,当遇到内存不足、db buffer已满等情况时,需要将db buffer中的内容/部分内容(特别是脏数据)转储到data file中。

 在转储时,会记录checkpoint发生的位置,在故障回复时候,只需要redo/undo最近的一次checkpoint之后的操作。

 

二、CheckPoint作用

1、缩短数据库的恢复时间

当数据库宕机时,数据库不需要重做所有日志,因为CheckPoint之前的页都已经刷新回磁盘。只需对CheckPoint后的重做日志进行恢复,从而缩短恢复时间

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

当缓存池不够用时,LRU算法会溢出最近最少使用的页,若此页为脏页,会强制执行CheckPoint,将该脏页刷回磁盘

3、Redo日志不可用时,刷新脏页

不可用是因为对重做日志的设计是循环使用的。重做日志可以被重用的部分,是指当数据库进行恢复操作时不需要的部分。若此时这部分重做日志还有用,将强制执行CheckPoint,将缓冲池的页至少刷新到当前重做日志的位置

三、CheckPoint种类

InnoDB存储引擎内

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值