Mysql主要配置参数2:key_buffer_size 键缓冲
Mysql主要参数
在优化MySQL时,有两个配置参数是最重要的,即table_cache和key_buffer_size。而具体到应用环境还有个查询参数query_cache_size直接影响查询性能。下面主要是整理的关于下面三个参数的文章
1.table_cache 表缓存
2.key_buffer_size 键缓冲
3.query_cache_size查询缓存
4.其他参数
5.参考文章
首先,在了解这些参数设置前需要明确的概念是
• 什么是mysql/l_13_1.htm" title="MYSQL" >MYSQL的缓存:在内存中预留的块
• 访问内存中的数据快于访问磁盘上的数据。
• 把数据保存在内存中更重要的是可以减少磁盘IO操作。
• 当数据变化(update insert delete...)时对应的缓存就失效
• 内存是有限的
2、key_buffer_size 键缓冲
# 指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。
# 对于内存在4GB左右的服务器该参数可设置为256M或384M。
# 注意:该参数值设置的过大反而会是服务器整体效率降低!
# key_buffer_size指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度。通过检查状态值Key_read_requests和Key_reads,可以知道# key_buffer_size设置是否合理。比例key_reads / key_read_requests应该尽可能的低,至少是1:100,1:1000更好(上述状态值可以使用SHOW STATUS LIKE ‘key_read%’获得)。
# key_buffer_size只对MyISAM表起作用。即使你不使用MyISAM表,但是内部的临时磁盘表是MyISAM表,也要使用该值。可以使用检查状态值# created_tmp_disk_tables得知详情。
# 对于1G内存的机器,如果不使用MyISAM表,推荐值是16M(8-64M)。
# 案例1:健康状况
# key_buffer_size – 402649088 (384M)
# key_read_requests – 597579931
# key_reads - 56188
# 案例2:警报状态
# key_buffer_size – 16777216 (16M)
# key_read_requests – 597579931
# key_reads - 53832731
# 案例1中比例低于1:10000,是健康的情况;案例2中比例达到1:11,警报已经拉响。
索引块是缓冲的并且被所有的线程共享。key_buffer_size是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),到你能负担得起那样多。如果你使它太大,系统将开始换页并且真的变慢了。默认数值是8388600(8M),我的MySQL主机有2GB内存,所以我把它改为402649088(400MB)。