㈠它是什么
双写者是ibdata1(共享表空)中的连续空空格。
BTW:命名时为什么叫缓冲区?是不是所有缓冲写入都叫缓冲,加速读取都叫缓存,哈哈?
㈡为什么?
重做有效应用的前提是数据的一致性。当数据刷新到磁盘时,就会出错,例如,16K只写4K。
而且重做条目是变化向量的形式,属于逻辑记录,所以InnoDB恢复的时候重做不知道从哪里开始。
简而言之,就是解决部分页写问题。
(iii)它是否影响性能?
第一阶段,数据写入双写缓冲区属于顺序IO,节省IO开销。
在第二阶段,由于双写入器缓冲区已经积累了很多脏页,所以可以在写到实位置时将它们合并,减少fsync()的数量。
所以对性能影响不大。
㈣相关参数
① show variables like '%double%';