14.12.3 InnoDB 检查点

log files设置得很大可能会减少checkpointing期间的磁盘 I/O。通常将日志文件的总大小设置为与缓冲池一样大,甚至更大。尽管从 MySQL 5.5 开始,过去大型日志文件可能会使崩溃恢复花费大量时间,但崩溃恢复的性能增强使崩溃后可以快速启动使用大型日志文件。 (严格来说,对于具有 InnoDB Plugin 1.0.7 和更高版本的 MySQL 5.1,可以实现这种性能改进.对于 MySQL 5.5,可以在默认的 InnoDB 存储引擎中进行此改进.)

检查点处理的工作方式

InnoDB实现了称为fuzzy checkpointingcheckpoint机制。 InnoDB小批量地从缓冲池中刷新已修改的数据库页面。无需单批刷新缓冲池,这会在检查点过程中中断用户 SQL 语句的处理。

crash recovery期间,InnoDB查找写入日志文件的检查点标签。它知道标签之前对数据库的所有修改都存在于数据库的磁盘映像中。然后InnoDB从检查点开始向前扫描日志文件,并将记录的修改应用于数据库。