码迷,mamicode.com
首页 > 数据库 > 详细

MYSQL Checkpoint 优化

时间:2020-05-07 10:51:03      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:com   频繁   check   磁盘   机制   而不是   不可   完整   优化参数   

一、checkpoint检查点为什么产生
??页操作在缓冲池完成,那么缓冲池就是为了协调CPU和磁盘速度,所以页上做了数据变更,就成了脏页,就需要从缓冲池刷新到硬盘,那怎么刷新呢。频繁肯定不行,还是很多以后再提交或者不用提交,直接影响后续恢复。
数据库都是这种策略 Write Ahead Log 事物提交时,先写重做日志,再修改页,

因此永远不刷页写日志有两个条件:
缓冲池可以缓冲所有的数据
重做日志可以无限增大
显然以上条件后续无法满足,几个T的数据库,疯狂增长的日志。

此时就需要一个完整的方案机制,去满足可行性条件,然后进行刷新。
?
二、checkpoint检查点解决什么

缩短数据库的恢复时间: checkpoint之前的已经刷盘,只需要恢复后边的重做日志
缓冲池不够用时,将脏页刷新到磁盘:同样缓冲池不够用的时候,也需要更新脏页到磁盘。
重做日志不可用时,刷新脏页:重做日志是组,循环使用,如果循环之前还需要用到之前的日志。
技术图片
执行show engine innodb status \G;
Warnings:生产上这个checkpoint和flushed up 的pos经常不一致。
?
三、checkpoint检查点优化参数设置

两种类型:
Sharp Checkpoint   数据库关闭时刷新所有的脏页到磁盘

Fuzzy Checkpoint  只刷新一部分脏页到磁盘,而不是全部

技术图片
这个参数就是默认的工作方式。Sharp Checkpoint。

针对Fuzzy Checkpoint,以下几种情况会用到:  
master thread checkpoint   差不多每秒或者每十秒刷新部分脏页到磁盘,异步,不影响查询操作。
flush_lru_list checkpoint 

MYSQL Checkpoint 优化

标签:com   频繁   check   磁盘   机制   而不是   不可   完整   优化参数   

原文地址:https://blog.51cto.com/aklaus/2492933

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!