MySQL:缓冲池CheckPoint技术


风晓
风晓 2023-12-28 13:55:49 56193 赞同 0 反对 0
分类: 资源
主要讲MySQL:缓冲池CheckPoint技术

在innodb体系结构中说到了缓冲池里使用了checkpoint技术。

缓冲池的设计就是为了协调cpu的速度和磁盘的速度,所以页的操作首先都是在缓冲池中完成的,例如读取数据,先是从磁盘读取到缓冲池里。那么当修改和删除语句改变了缓冲池里的页中的记录的时候,这个页就是脏页,(缓冲池里的页里的数据比磁盘里的数据新),那么此时数据库需要将新版本的页从缓冲池刷新到磁盘。

假如每次一个页的变化就将新的页的版本刷新到磁盘,多个页里的数据都发生了变化,如果都去刷盘的话,开销是非常大的,db的性能也变的非常差。而且,如果刷盘的时候宕机了,数据就不能恢复了。

为了避免数据刷盘时宕机带来的数据丢失问题,当前事务数据库系统普遍采用了一种策略名叫 Write Ahead log策略,即当事务提交时,先写重做日志,再修改页。当由于发生宕机而导致数据丢失时,通过重做日志 redo log来完成数据的恢复,这也是事务ACID中的D持久性的要求。

假如redo log和 缓冲池足够大,能够缓冲所有数据,那么是不需要将缓冲池里页的新数据刷新到磁盘中的,因为宕机后,可以通过redo log恢复到宕机发生的时刻。很显然缓冲池不可能装的下数据库的所有数据,而redo log也不可能无限大,如果无限大,那么宕机后恢复的时候,运行了几个月几年的数据库,恢复会非常久,代价非常大。


所以CheckPoint技术的目的是解决以下问题:

  • 1、缩短DB的恢复时间
  • 2、缓冲池不够用时,将脏页刷新到磁盘
  • 3、redo log不可用时,刷新脏页

当数据库发生宕机是,数据库不需要重做所有的日志,因为CheckPoint之前的页已经刷新回磁盘了,所以数据库只需要对CheckPoint后的redo log进行恢复,这样就缩短了恢复时间。


在innodb中,CheckPoint发生的时间,条件,脏页的选择都非常复杂。其实CheckPoint无非就是刷新缓冲区中页里的新数据到磁盘里,关键就是每次刷新多少页到磁盘,每次从哪里取脏页,以及什么时间触发CheckPoint,在innodb中有两种CheckPoint,分别为:

Sharp CheckPoint  一般不用
Fuzzy CheckPoint  默认使用

在innodb中可能发生如下几种情况的Fuzzy CheckPoint

1、对于Master Thread中发生的CheckPoint,差不多是以每秒或者每10s的速度从缓冲池的脏页列表中刷新一定比例的页回磁盘,这个过程是异步的,不阻塞其他线程

2、flush lru list CheckPoint,innodb存储引擎需要保证LRU列表中有差不多100个空闲页可以使用,在innodb1.1.x版本之前,需要检查LRU列表中是否有足够的可用空间操作发生在用户查询线程中,显然这会阻塞用户的查询操作。倘若没有100个可用空闲页,那么innodb存储引擎会将LRU列表尾端的页移除。如果这些页有脏页,则需要CheckPoint,而这些页是来自LRU列表的,所以称为FLUSH_LRU_LIST CheckPoint。

3、redolog不可用的时候需要将一些页刷新回磁盘,而此时脏页是从脏页列表中选取的,

4、脏页太多的时候触发CheckPoint

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
风晓L1
粉丝 1 资源 2038 + 关注 私信
最近热门资源
桌面通用(全架构)【在双系统环境下隐藏Windows启动菜单】操作指南  2057
银河麒麟桌面操作系统V10(SP1)2203-如何进行远程桌面互访?  1994
银河麒麟桌面操作系统【保留数据盘重装系统】  1804
麒麟系统各种原因开不了机解决(合集)  1587
桌面通用(全架构)【rpm包转成deb包】操作方法  931
银河麒麟桌面操作系统 V10-SP1 双系统安装 efi 分区问题  915
统信系统安装(合集)  853
统信桌面专业版【手动分区安装UOS系统】介绍  845
统启动异常几种类型(initramfs 模式)  688
最近下载排行榜
桌面通用(全架构)【在双系统环境下隐藏Windows启动菜单】操作指南 0
银河麒麟桌面操作系统V10(SP1)2203-如何进行远程桌面互访? 0
银河麒麟桌面操作系统【保留数据盘重装系统】 0
麒麟系统各种原因开不了机解决(合集) 0
桌面通用(全架构)【rpm包转成deb包】操作方法 0
银河麒麟桌面操作系统 V10-SP1 双系统安装 efi 分区问题 0
统信系统安装(合集) 0
统信桌面专业版【手动分区安装UOS系统】介绍 0
统启动异常几种类型(initramfs 模式) 0
作者收入月榜
1

prtyaa 收益393.72元

2

zlj141319 收益220.97元

3

1843880570 收益214.2元

4

IT-feng 收益213.03元

5

风晓 收益208.24元

6

777 收益172.82元

7

Fhawking 收益106.6元

8

信创来了 收益105.89元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!