双写缓冲区是一个存储区域,在
InnoDB
将页面写入
InnoDB
数据文件中的适当位置之前,写入从缓冲池中刷新的页面。如果在页面写入过程中出现操作系统、存储子系统或意外的mysqld
进程退出,
InnoDB
则可以在崩溃恢复期间从双写缓冲区中找到一份完好的页面副本。
虽然数据被写入两次,但双写缓冲区不需要两倍的 I/O 开销或两倍的 I/O 操作。数据以大的顺序块写入双写缓冲区,只需fsync()
调用一次操作系统(
innodb_flush_method
设置为
的情况除外O_DIRECT_NO_FSYNC
)。
默认情况下启用双写缓冲区。要禁用双写缓冲区,请设置
innodb_doublewrite
为 0。