分析DWB执行的三个步骤:(1)第一步,页数据memcopy到DWB的内存,速度很快;(2)第二步,DWB的内存fsync刷到DWB的磁盘,属于顺序追加写,速度也很快;(3)第三步,刷磁盘,随机写,本来就需要进行,不属于额外操作;另外,128页(每页16K)2M的DWB,会分两次刷入磁盘,每次最多64页,即1M的数据,执行也是非常之快的。综上,性能会有所影响,但影响并不大。画外音:(1)write-ahead-log之所以性能高,就是因为顺序追加写;(2)有第三方测评,评估约10%性能损失;更具体的,InnoDB里有两个变量可以查看double write buffer相关的情况:Innodb_dblwr_pages_written记录写入DWB中页的数量。Innodb_dblwr_writes记录DWB写操作的次数。可以通过:show global status like "%dblwr%"来进行查询。