一、刷新邻接页原理
InnoDB存储引擎还提供了Flush Neighbor Page(刷新邻接页)的特性。其工作原理为:当刷新一个脏页时,InnoDB存储引擎会检测该页所在区(extent)的所有页,如果是脏页,那么一起进行刷新。
二、刷新邻接页优点
通过AIO可以将多个IO写入操作合并为一个IO操作,故该工作机制在传统机械磁盘下有着显著的优势。
三、刷新邻接页开启与关闭
开启与关闭需要考虑到下面两个问题:
- 是不是可能将不怎么脏的页进行了写入,而该页之后又会很快变成脏页?
- 固态硬盘有着较高的IOPS,是否还需要这个特性?
为此,InnoDB存储引擎从1.2.x版本开始提供了参数innodb_flush_neighbors,用来控制是否启用该特性。对于传统机械硬盘建议启用该特性,而对于固态硬盘有着超高IOPS性能的磁盘,则建议将该参数设置为0,即关闭此特性。
mysql> SHOW VARIABLES LIKE 'innodb_flush_neighbors';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| innodb_flush_neighbors | 1 |
+------------------------+-------+
InnoDB存储引擎提供了一种名为刷新邻接页的特性,该特性可以在刷新一个脏页时,一并刷新同一区内的所有脏页,利用AIO提高传统机械磁盘的IO效率。然而,对于SSD等高IOPS存储设备,该特性可能不再必要,甚至可能导致频繁写入不必要的脏页。
2041

被折叠的 条评论
为什么被折叠?



