mysql参数之key_buffer_size

Posted 阿丽in上海

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql参数之key_buffer_size相关的知识,希望对你有一定的参考价值。


全局的(非单个连接),只针对MyISAM引擎的索引缓存,对MyISAM表性能影响较大。对于8.0之前版本,即使不使用该引擎,系统表也是用的MyISAM引擎,默认值(8M,最好在my.cnf调高该值。

[mysqld]key_buffer_size=128M


查看大小:

show variables like 'key_buffer%';+-----------------+----------+| Variable_name | Value |+-----------------+----------+| key_buffer_size | 134217728|+-----------------+----------+

可动态调整,但重启后会失效,最好同时修改my.cnf:

set global key_buffer_size=128*1024*1024;

查看使用情况:

#两者比值越小越好,最好小于0.01:show global status like 'key_read%';+-------------------+------------+| Variable_name | Value |+-------------------+------------+| Key_read_requests | 4230942833 | #表示从缓存中读取索引的次数| Key_reads         | 40619222   | #表示从磁盘中读取索引的次数+-------------------+------------+select 40619222/4230942833;+---------------------+| 40619222/4230942833 |+---------------------+| 0.0096 |+---------------------+#下面比值正常接近1,如果批量写和更新,会更小show global status like 'key_write%';+--------------------+-----------+| Variable_name | Value |+--------------------+-----------+| Key_write_requests | 698880624 | #写入到key buffer的请求数| Key_writes         | 103966570 | #写入到磁盘的请求数+--------------------+-----------+select 103966570/698880624;+---------------------+| 103966570/698880624 |+---------------------+| 0.1488 |+---------------------+
#Key_blocks_unused 可以使用此值来确定使用了多少缓存#Key_blocks_used 值是一个高水位线,指示一次曾经使用的最大块数#两者正常比较接近show global status like 'key_blocks_u%';+-------------------+-------+| Variable_name | Value |+-------------------+-------+| Key_blocks_unused | 53585 | #key buffer未使用的块数| Key_blocks_used | 53585 | #key buffer使用的块数+-------------------+-------+

以上是关于mysql参数之key_buffer_size的主要内容,如果未能解决你的问题,请参考以下文章

mysql5.6之key_buffer_size优化设置

根据 MySQL 状态优化 ---- 3. key_buffer_size

mysql之性能指标查询

优化MySQL服务器

MYSQL配置参数优化详解

优化mysql服务器