
(1.16)mysql server优化之buffer pool
1、innodb buffer pool
查看 show status like 'Innodb_buffer_pool_%';
该部分转自:https://blog.csdn.net/huoyuanshen/article/details/72302976
innodb_buffer_pool参数解释:
查看 show status like 'Innodb_buffer_pool_%';
,设置的过大,会导致system的swap空间被占用,导致操作系统变慢,从而减低sql查询的效率。
,存放的内容:索引,数据,插入数据时的缓冲。
,确定具体大小的时候需要先确认页大小,默认16k():SHOW GLOBAL STATUS LIKE 'Innodb_page_size';
,空闲小于5%进行池增加。
,一般占系统内存50%-%,最好是计算得出。
假设是一台单独给 MySQL 使用的主机,物理内存总大小为 8G,MySQL 最大连接数为 ,同时还使用 了 MyISAM 存储引擎,这时候我们的整体内存该如何分配呢?
内存分配为如下几大部分:
a) 系统使用,假设预留 800M;
b) 线程独享,约 2GB = * (1MB + 1MB + 1MB + 512KB + 512KB),组成大概如下:sort_buffer_size:1MB join_buffer_size:1MB read_buffer_size:1MB read_rnd_buffer_size:512KB thread_statck:512KB
c) MyISAM Key Cache,假设大概为 .5GB;
d) Innodb Buffer Pool 最大可用量:8GB - 800MB - 2GB - .5GB = .7GB;
,建议初期的时候设置保守,通过监控在进行修复。
,命中率计算: [1](1 - Innodb_buffer_pool_reads)/Innodb_buffer_pool_read_requests)*100
[2](Innodb_buffer_pool_read_requests - Innodb_buffer_pool_reads)/Innodb_buffer_pool_read_requests #建议添加该值的监控,如果过低,进行报警