加入收藏 | 设为首页 | 会员中心 | 我要投稿 临夏站长网 (https://www.0930zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Innodb关键特性之怎么刷新邻接页

发布时间:2022-01-11 14:27:58 所属栏目:MySql教程 来源:互联网
导读:本篇内容介绍了Innodb关键特性之怎么刷新邻接页的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 1、工作原理 当刷新一个脏页时,innodb存储引擎会检
      本篇内容介绍了“Innodb关键特性之怎么刷新邻接页”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
 
1、工作原理
 
  当刷新一个脏页时,innodb存储引擎会检测该页所在区(extent)的所有页,如果是脏页,那么一起进行刷新。这样做的好处显而易见,通过AIO可以将多个IO写入操作合并为一个IO操作,增大写入量,减少了物理写IO,故该工作机制在传统机械磁盘下有着显著的优势。
 
  1、在写入次数基本不增加的情况下,增加了写入的量;
 
  2、加速了脏页的回收;
 
  3、充分利用double write每次1M写入的特征;
 
  4、这个功能打开以后会发现iostat里面的wrqm(合并写)这个值会比较高;
 
2、问题考虑
 
  1、是不是可能将不怎么脏的页进行了写入,而该页之后又会很快变成脏页?
 
  2、固态硬盘有着较高的 IOPS,是否还需要这个特性?
 
  为此,InnoDB 存储引擎从 1.2.x 版本开始提供了参数 innodb_flush_neighbors,用来控制是否启用该特性。对于传统机械硬盘建议启用该特性,而对于固态硬盘有着超高 IOPS 性能的磁盘,则建议将该参数设置为 0、即关闭此特性。
 
3、参数控制:innodb_flush_neighbors
 
mysql>show variables like 'innodb_flush_neighbors';
+-------------------------+-----------------+
| Variable_name           | Value           |
+-------------------------+-----------------+
| innodb_flush_neighbors  | 1               |
+-------------------------+-----------------+
       1,表示打开了刷新邻接页的功能,顺带着刷新在 buffer pool 中位于磁盘上相同的 extend 区的相邻的脏页。
 
  0,表示关闭刷新邻接页
 
  2 ,表示刷新在 buffer pool 中位于磁盘上相同的 extend 区的脏页。
 
4、Flush neighbor page的影响
 
  1、对于insert频繁的系统,这个功能比较适合
 
  2、对于update频繁的系统,这个功能可能会带来一些副作用
 
    1、update顺带着刷新其他页;
 
    2、对于update频繁的表,这些页马上就脏了,白白浪费写负载。
 
“Innodb关键特性之怎么刷新邻接页”的内容就介绍到这里了,感谢大家的阅读。

(编辑:临夏站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!