Rumah > pangkalan data > tutorial mysql > 为何MySQL引入Double Writer

为何MySQL引入Double Writer

WBOY
Lepaskan: 2016-06-07 16:14:57
asal
1322 orang telah melayarinya

为什么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 
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan