mysql checkpoint的理解

本文详细介绍了MySQL8.0的checkpoint机制,它记录了已成功写入数据文件的最新更改(LSN值)。当buffer pool的脏页刷新到磁盘时,若redo日志满,用户线程需更新checkpoint_lsn,以便后续继续写入。checkpoint是数据库管理的重要环节,涉及数据持久化和性能优化。
摘要由CSDN通过智能技术生成

我个人认为这是一个名词,而不是动词。

在MySQL8.0官方文档里对checkpoint的定义如下:

=============================================

checkpoint

As changes are made to data pages that are cached in the buffer pool, those changes are written to the data files sometime later, a process known as flushing. The checkpoint is a record of the latest changes (represented by an LSN value) that have been successfully written to the data files.

=============================================

我只翻译最后一段话:

checkpoint是redolog里最新的改变。

看起来有些不通顺,没关系,我加上自己的理解再翻译一次(个人理解哈,与其他资料都不太一样):

checkpoint是一个过程。当负责刷脏页的后台线程刷不动了(此时磁盘上的redo日志文件被写满了),就需要用户线程帮忙标记下,看看哪些redo日志可以被覆盖。

怎么标记呢?redo文件里有一个偏移量(学名叫checkpoint_lsn),偏移量小于此值的redo日志可以被覆盖。当后台线程刷不动的时候,就意味着文件已经写到了上次checkpoint_lsn标记的地方。此时用户线程需要去写入日志文件里checkpoint_lsn的值。改完后后台线程就可以继续刷刷刷了。

总结:因为redo写满了,需要用户线程去写入chechpoint_lsn值的过程就是checkpoint

欢迎大家阅读redo完整的介绍:

https://blog.csdn.net/u011403239/article/details/119703346

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值