MYSQL Checkpoint 优化

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

所以永远不刷页写日志有两个条件:
缓冲池能够缓冲全部的数据
重作日志能够无限增大
显然以上条件后续没法知足,几个T的数据库,疯狂增加的日志。

此时就须要一个完整的方案机制,去知足可行性条件,而后进行刷新。

2、checkpoint检查点解决什么异步

缩短数据库的恢复时间: checkpoint以前的已经刷盘,只须要恢复后边的重作日志
缓冲池不够用时,将脏页刷新到磁盘:一样缓冲池不够用的时候,也须要更新脏页到磁盘。
重作日志不可用时,刷新脏页:重作日志是组,循环使用,若是循环以前还须要用到以前的日志。
MYSQL Checkpoint 优化
执行show engine innodb status \G;
Warnings:生产上这个checkpoint和flushed up 的pos常常不一致。

3、checkpoint检查点优化参数设置ide

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

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

MYSQL Checkpoint 优化
这个参数就是默认的工做方式。Sharp Checkpoint。优化

针对Fuzzy Checkpoint,如下几种状况会用到:  
master thread checkpoint   差很少每秒或者每十秒刷新部分脏页到磁盘,异步,不影响查询操做。
flush_lru_list checkpoint
相关文章
相关标签/搜索