欢迎各位兄弟 发布技术文章
这里的技术是共享的
innodb_buffer_pool参数解释:
查看 show status like 'Innodb_buffer_pool_%';
1,设置的过大,会导致system的swap空间被占用,导致操作系统变慢,从而减低sql查询的效率。
2,存放的内容:索引,数据,插入数据时的缓冲。
3,确定具体大小的时候需要先确认页大小,默认16k(16384):SHOW GLOBAL STATUS LIKE 'Innodb_page_size';
4,空闲小于5%进行池增加。
5,一般占系统内存50%-80%,最好是计算得出。
假设是一台单独给 MySQL 使用的主机,物理内存总大小为 8G,MySQL 最大连接数为 500,同时还使用 了 MyISAM 存储引擎,这时候我们的整体内存该如何分配呢?
内存分配为如下几大部分:
a) 系统使用,假设预留 800M;
b) 线程独享,约 2GB = 500 * (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,假设大概为 1.5GB;
d) Innodb Buffer Pool 最大可用量:8GB - 800MB - 2GB - 1.5GB = 3.7GB;
6,建议初期的时候设置保守,通过监控在进行修复。
7,命中率计算:
(Innodb_buffer_pool_read_requests - Innodb_buffer_pool_reads)/Innodb_buffer_pool_read_requests #建议添加该值的监控,如果过低,进行报警
来自 http://blog.csdn.net/huoyuanshen/article/details/72302976