mysql 之 doublewrite buffer 机制
Posted WindWant
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 之 doublewrite buffer 机制相关的知识,希望对你有一定的参考价值。
是什么?
doublewrite buffer是mysql 系统表空间的一块存储区域。
有什么用?
在Innodb将数据页写到数据存储文件之前,存储从Innodb缓存池刷过来的数据页。且只有将数写入doublewriter buffer后,Innodb才会进行数据页的物理存储。如果在数据页写盘时发生操作系统、存储系统、或者myql进程中断,Innodb可以从doublewriter buffer存储中找回丢失的数据页备份。
性能影响?
虽然数据总是双份写,但并不意味着需要双倍的IO操作,或者IO能力。通过向操作系统发送fsync()命令,将数据以较大的连续数据块的形式写入doublewriter buffer。
doublewriter buffer多数情况下是默认开启的,可以通过配置innnodb_doublewrite=0关闭
关闭doublewriter buffer可以在一定程度上提升数据库层面性能,但是要处理好容灾。可以在应用层面通过重试补偿,或者数据检查机制等处理写中断引发的问题。
以上是关于mysql 之 doublewrite buffer 机制的主要内容,如果未能解决你的问题,请参考以下文章