InnoDB学习笔记(4)Double write

mysql 为何需要Double Write

Double Write的思路很简单:

  1. 在覆盖磁盘上的数据前,先将Page的内容写入到磁盘上的其他地方(InnoDB存储引擎中的doublewrite buffer,这里的buffer不是内存空间,是磁盘上的空间).

  2. 然后再将Page的内容覆盖到磁盘上原来的数据。

如果在1步骤时系统故障,原来的数据没有被覆盖,还是完整的。

如果在2步骤时系统故障,原来的数据不完整了,但是新数据已经被完整的写入了doublewrite buffer。 因此系统恢复时就可以用doublewrite buffer中的新Page来覆盖这个不完整的page。

你可能感兴趣的:(InnoDB学习笔记(4)Double write)