Checkpoint技术
主要作用:脏页的刷盘机制。
Checkpoint
缩短数据库恢复时间
缓冲池不够时,将脏页刷到磁盘
当重做日志不可用时,刷新脏页
checkpoint有两种,sharp checkpoint和fuzzy checkpoint
Sharp/Fuzzy Checkpoint
Sharp发生在数据库关闭时,将所有脏页刷到磁盘。
Fuzzy在数据库运行期间,刷新一部分脏页到磁盘,避免sharp刷盘造成运行时性能问题。
Fuzzy Checkpoint类型
Master Thread Checkpoint:以每秒或每十秒刷新脏页列表到磁盘,异步操作。
FLUSH LRU LIST Checkpoint:InnoDB需要保持缓冲池LUR列表存在空闲的页,差不多100多个页,如果LRU不存在100多个空闲页,则移除LRU列表尾端的页,如果这些页存在脏页,则执行checkpoint进行刷盘。又单独线程Page cleaner执行
Async/Sync Flush checkpoint:重做日志不可用情况下,从脏页列表中选取页进行刷盘
Dirty page too much:脏页数量占据75%,强制进行Checkpoint,刷一部分脏页到磁盘
参考书籍:MySQL技术内幕 InnoDB存储引擎 第2版