mysql-5.7 innodb change buffer 详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql-5.7 innodb change buffer 详解相关的知识,希望对你有一定的参考价值。

一、innodb change buffer 介绍:

  1、innodb change buffer 是针对oltp场景下磁盘IO的一种优化(我也感觉这个不太像人话,但是它又非常的准确的说明

  innodb change buffer 的功能)

 

二、innodb change buffer 原理:

  对于insert ,update ,delete 操作一来要更新数据,二来要更新索引;如果要更新的索引页还没有在内存中,那么innodb

  不会急于把索引页调入内存,更新,再写回磁盘;它会先把对索引的更新这一动作先记录到innodb buffer pool中一块

  叫change buffer 的区域。那它什么时候写回呢? 目前来说有三种情况innodb会把change buffer 中的内容写入索引页

  情况1:  要更新的索引页被调入内存

  情况2:   服务器比较空闲

  情况3:   mysql 进入slow shutdown 的时候

 

三、innodb change buffer 可能会引起的问题:

  前面我们说过innodb change buffer 所使用的内存块是在innodb buffer pool中分出来的,而innodb buffer pool就是为了

  缓存数据,索引,undo ... .. 如果change buffer 过大了那么它就挤占了本来用于缓存数据,索引的内存,这样就可能引发

  mysql数据库的性能问题了。

 

四、对innodb change buffer 进行精细控制:

  

 

 

 

----


以上是关于mysql-5.7 innodb change buffer 详解的主要内容,如果未能解决你的问题,请参考以下文章

mysql-5.7 show engine innodb status 详解

MySQL 5.7 innodb全文索引

mysql 5.7 innodb memcached plugin 支持内存数据库

MySQL InnoDB Cluser | Mysql 5.7 集群

mysql-5.7中innodb_buffer_pool页面淘汰算法

MySQL-5.7设置InnoDB表数据文件存储位置