innodb_buffer_pool我们俗称缓冲池,
缓冲池简单来说就是一块内存区域,通过内存的速度来弥补磁盘速度较慢对数据库性能的影响。
写入时,先将数据写入缓冲池种,再定期刷新到磁盘;读取时,将读到的页放到缓冲池种,下次再读取相同的页时,会首先判断该页是否在缓冲池中,若在缓冲池中则直接从缓冲池中返回。
1.查看当前值
show variables like '%innodb_buffer_pool_size%'
2.优化配置
(1)配置为系统内存的50%至75%。默认缓冲池大小为128 MB。一般设置为内存大小的75%
innodb_buffer_pool_size={DBInstanceClassMemory*3/4}
(2) 为了避免潜在的性能问题,块的数量(innodb_buffer_pool_size/innodb_buffer_pool_chunk_size)不应超过1000
select @@innodb_buffer_pool_size/@@innodb_buffer_pool_chunk_size;
(3)缓冲池大小必须始终等于或倍数为
增加或减少时innodb_buffer_pool_size,操作以块的形式执行。块大小由innodb_buffer_pool_chunk_size配置选项,该选项的默认值为128M。
innodb_buffer_pool_size = n(innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances)
如果不等于乘积的倍数,缓冲池将会自动调整为乘积的数值,可以用下方命令查看:
select @@innodb_buffer_pool_size/(@@innodb_buffer_pool_chunk_size * @@innodb_buffer_pool_instances);
(4)在具有大量内存的系统上,可以通过将缓冲池划分为多个来提高并发性
innodb_buffer_pool_instances系统变量定义缓冲池实例的数量
修改配置文件的调整方法,修改my.cnf配置:
innodb_buffer_pool_size = 2147483648 #设置2G
innodb_buffer_pool_size = 2G #设置2G
innodb_buffer_pool_size = 500M #设置500M
3.使用建议
设置要根据自己的实际情况来设置,如果设置的值不在合理的范围内,并不是设置越大越好,可能设置的数值太大体现不出优化效果,反而造成系统的swap空间被占用,导致操作系统变慢,降低sql查询性能。