当前位置:Gxlcms > mysql > 为什么MySQL引入DoubleWriter_MySQL

为什么MySQL引入DoubleWriter_MySQL

时间:2021-07-01 10:21:17 帮助过:36人阅读

bitsCN.com

为什么MySQL引入Double Writer

㈠ 是什么

double writer是ibdata1(共享表空间)里面的一块连续空间

BTW:为什么取名时叫buffer呢?难道一切缓冲写都叫buffer,加速读叫cache,哈哈

㈡ 为什么需要

redo有效应用的前提是data的一致性,当data flush到磁盘时发生故障,比如16K只写了4K

并且redo条目是change vector形式,属于逻辑记录,那么在InnoDB recovery时,redo就不知道从哪开始跑起

简言之,就是为了解决部分写问题(partial page write)

㈢ 影响性能吗

第一阶段,data写到double writer buffer属于顺序IO,节省IO开销

第二阶段,因为double writer buffer积累了很多dirty page,再写向真正的位置时有可能合并,减少fsync()次数

故,对性能影响不大

㈣ 相关参数

① show variables like '%double%'; <==确认是否开启

② show status like '%innodb_dblwr%'; <==展示进来和出去的page数量,并且能计算有多少块被合并写出

bitsCN.com

人气教程排行