CheckPoint的意义:
- 缩短数据库的恢复时间
- 缓冲池不够用是,将脏页刷新到磁盘
- 重做日志不可用是,刷新脏页
CheckPoint分类:
-
Sharp CheckPoint
刷新时机:当数据库关闭时将所有脏页都刷新回磁盘,这是默认的方式。
-
Fuzzy CheckPoint
刷新时机:
1、Master Thread Checkpoint
以每秒或每十秒的速度从缓冲池的脏页列表中刷新一定比例的页回磁盘,这个过程是异步的,此时InnoDB存储引擎可以进行其他的操作,用户查询线程不会阻塞。
2、FLUSH_LRU_LIST Checkpoint
若没有100个可用空闲页,那么InnoDB存储引擎会将LRU列表尾端的页移除。如果这些页中有脏页,那么需要进行Checkpoint
3、Async/Sync Flush Checkpoint
重做日志文件不可用的情况,这时需要强制将一些页刷新回磁盘
4、Dirty Page too much
脏页的数量太多,导致InnoDB存储引擎强制进行Checkpoint。参数:innodb_max_dirty_pages_pct---配置强制CheckPoint时机