您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

为何MySQL引入Double Writer

2025/11/11 8:33:38发布17次查看
为什么mysql引入double writer? ㈠ 是什么 double writer是ibdata1(共享表空间)里面的一块连续空间 btw:为什么取名时叫buffer呢?难道一切缓冲写都叫buffer,加速读叫cache,哈哈 ㈡ 为什么需要 redo有效应用的前提是data的一致性,当data flush到磁盘时发生
为什么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%';
参考资料:
http://www.orczhou.com/index.php/2010/02/innodb-double-write/
by 迦夜
2013-10-26
good luck
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product