mysql优化参数key_buffer_size

key_buffer_size 默认8MB
只对Myisam表起作用,是影响myisam表性能影响最大的一个参数。
指定索引缓冲区大小,它被所有线程共享,决定索引处理的速度,尤其是索引读的速度。
所以增大这个参数值是需要的,但是也不能设置的过大,如果设置的太大,系统将开始换页并且变的很慢
对于内存为4G左右的server,该参数可以设置为258MB或者384MB
如何确定key_buffer_size设置是否合理呢?一般可以检查状态值Key_read_requests和Key_reads
mysql> show status like ‘key_read%’;
+——————-+———–+
| Variable_name | Value |
+——————-+———–+
| Key_read_requests | 294205709 |
| Key_reads | 12436933 |
+——————-+———–+
2 rows in set (0.00 sec)
Key_read_requests:请求从索引缓冲区读的数目
Key_reads:在cache中没有找到,而从磁盘直接读取的请求数
key_reads / key_read_requests *100% 即为cache未命中比率,这个比率应该越小越好,一般未命中概率在0.1之下比较好,也就是小于千分之一
我们算出来 意思未命中率为4.23%,远远大于0.1%,所以还有很大的提升空间,需要增大该值
若未命中率在0.01以下,则建议适当的减小key_buffer_size值

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注