来源:自学PHP网 时间:2015-04-16 10:51 作者: 阅读:次
[导读] 为什么MySQL引入Double Writer㈠ 是什么 double writer是ibdata1(共享表空间)里面的一块连续空间 BTW:为什么取名时叫buffer呢?难道一切缓冲写都叫buffer,加速读叫cache,哈哈 ㈡ 为什么需要 redo有...
为什么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数量,并且能计算有多少块被合并写出
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com