为什么引入动态重定位如何实现(为什么引入随机变量)

lxf2023-11-21 21:10:02

bitscn . com MySQL为什么要引入Double Writer

㈠它是什么

双写者是ibdata1(共享表空)中的连续空空格。

BTW:命名时为什么叫缓冲区?是不是所有缓冲写入都叫缓冲,加速读取都叫缓存,哈哈?

㈡为什么?

重做有效应用的前提是数据的一致性。当数据刷新到磁盘时,就会出错,例如,16K只写4K。

而且重做条目是变化向量的形式,属于逻辑记录,所以InnoDB恢复的时候重做不知道从哪里开始。

简而言之,就是解决部分页写问题。

(iii)它是否影响性能

第一阶段,数据写入双写缓冲区属于顺序IO,节省IO开销。

在第二阶段,由于双写入器缓冲区已经积累了很多脏页,所以可以在写到实位置时将它们合并,减少fsync()的数量。

所以对性能影响不大。

㈣相关参数

① show variables like '%double%';