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 进行精细控制:

  

 

 

 

----

posted on 2017-08-30 14:28  蒋乐兴的技术随笔  阅读(507)  评论(0编辑  收藏  举报

导航