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 memcached plugin 支持内存数据库
MySQL InnoDB Cluser | Mysql 5.7 集群