我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql checkpoint有什么作用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql checkpoint有什么作用

本篇内容主要讲解“mysql checkpoint有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql checkpoint有什么作用”吧!

checkpoint检查点主要是刷新脏页到磁盘上,使数据库达到数据状态一致性的工作。因为事务的提交只会刷新操作日志到磁盘,脏数据是异步刷新到磁盘,这个异步就是靠checkpoint。

一、主要解决以下问题:

1、恢复的时候减少前滚操作,减少恢复时间

2、回收脏页,循环利用缓存池

3、重做日志不可用,刷新脏页

二、checkpoint种类及触发条件

sharp checkpoint (类似oracle全量)

当innodb_fast_shutdown=1和0时,数据库关闭时所有脏页全部刷新到磁盘上

Fuzzy checkpiont(类似oracle增量)

1、Master Thread进程每几秒或每十秒异步的将脏页一定比例的刷新到磁盘上

2、FlUSH_LUR_LIST checkpoint是因为在innodbmysql5.6版本以前需要保证LRU列表中需要有差不多100个空闲页可供使用,从mysql5.6版本以后,这个检查被放在一个单独的page cleaner线程中进行,而且用户可以通过参数innodb_lru_scan_depth控制LRU列表中可用页的数量,默认为1024

3、Async/Sync Flush checkpoint值重做日志文件不可用的时候

在重做日志文件不可用的情况下,需要将一些也刷新回磁盘,而操作发生在Flush列表上。若将已经写入到重做日志的LSN记为redo_lsn,将已经刷新回磁盘最新的LSN记为checkpoint_lsn,则可以定义:checkpoint_age = redo_lsn-checkpoint_lsn在定义一下的变量async_water_mark=75%*total_redo_log_file_size、sync_water_mark=90%*total_redo_file_size。若每个重做日志的大小为1G且定义了两个重做日志共2G。那么async_water_mark=1.5G,sync_water_mark=1.8G。

当checkpoint_age<async_water_mark时,不需要刷新任何脏数据到磁盘; </async_water_mark时,不需要刷新任何脏数据到磁盘;<>

当async_water_mark<checkpoint_age<sync_water_mark时,触发async flush从flush列表刷新足够的脏页会磁盘,使得刷新后满足checkpoint_age<async_water_mark; </checkpoint_age

当checkpoint_age>sync_water_mark时,这种情况很少发生除非设置的重做日志文件太小,并且进行类似于LOAD DATA的BULK INSRET操作。这个时候触发Sync Flush从Flush列表刷新足够的脏页会磁盘,使得刷新后满足checkpoint_age<async_water_mark; </async_water_mark;<>

Async Flush Checkpoint会阻塞发现问题的用户查询线程,Sync Flush Checkpoint会阻塞所有的用户查询线程,并且等待脏页刷新完成。但是从MySQL5.6版本开始这部分操作放入单独的Page Cleaner Thread中,不再会堵塞用户查询线程。

4、Dirty Page too much  当缓存池中的数据比例达到innodb_max_dirty_pages_pct比例时,强制checkpoint,刷新一部分脏页到磁盘上,innodb 1.0.X版本之前该参数默认是90,之后的版本都为75

mysql> show variables like 'innodb_max_dirty_pages_pct';

+----------------------------+-------+

| Variable_name              | Value |

+----------------------------+-------+

| innodb_max_dirty_pages_pct | 75    |

+----------------------------+-------+

1 row in set (0.00 sec)

到此,相信大家对“mysql checkpoint有什么作用”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql checkpoint有什么作用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql的mvcc有什么作用

MySQL的MVCC(Multi-Version Concurrency Control)是一种并发控制机制,它在读取和写入数据时,允许数据库同时存在多个版本的数据。这种机制可以提高数据库的并发性能和可靠性,同时减少数据冲突和锁竞争。MV
mysql的mvcc有什么作用
2024-04-24

MySQL Delete PHP有什么作用

本篇内容介绍了“MySQL Delete PHP有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!DELETE 语句用于从数据库表中删
2023-06-02

MySQL伪表dual有什么作用?

mysql 中的伪表 dual使用伪表 dual 可以从一个不包含任何真实数据的虚拟表中检索数据。在 mysql 中,dual 伪表与 from 子句中不包含任何表的查询具有相同的效果。查询区别提供的两个查询:select 6+6
MySQL伪表dual有什么作用?
2024-10-24

mysql中的analyze有什么作用

mysql analyze 命令更新表的统计信息以优化查询性能,包括统计更新、查询优化器改进和空间释放。工作原理包括扫描表数据计算行数、distinct 值数和值分布,从而生成更优化的查询计划。定期对经常查询的表执行 analyze 并仅分
mysql中的analyze有什么作用
2024-05-01

mysql中的validate_password有什么作用

MySQL中的validate_password是一个插件,用于强制设置和验证密码复杂性规则。通过启用validate_password插件,可以强制用户使用符合一定复杂性规则的密码,例如长度、包含数字、小写字母、大写字母和特殊字符等。v
mysql中的validate_password有什么作用
2024-05-14

mysql的user表有什么作用

这篇文章主要介绍了mysql的user表有什么作用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql的user表有什么作用文章都会有所收获,下面我们一起来看看吧。user表在
2022-11-30

编程热搜

目录