Documentation Home

14.6.5 双写缓冲区

双写缓冲区是一个存储区域,在 InnoDB将页面写入 InnoDB数据文件中的适当位置之前,写入从缓冲池中刷新的页面。如果在页面写入过程中出现操作系统、存储子系统或意外的mysqld 进程退出, InnoDB则可以在崩溃恢复期间从双写缓冲区中找到一份完好的页面副本。

虽然数据被写入两次,但双写缓冲区不需要两倍的 I/O 开销或两倍的 I/O 操作。数据以大的顺序块写入双写缓冲区,只需fsync()调用一次操作系统( innodb_flush_method设置为 的情况除外O_DIRECT_NO_FSYNC)。

默认情况下启用双写缓冲区。要禁用双写缓冲区,请设置 innodb_doublewrite为 0。