《Mysql必读优化mysql之key_buffer_size设置》要点:
本文介绍了Mysql必读优化mysql之key_buffer_size设置,希望对您有用。如果有疑问,可以联系我们。
key_buffer_size
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)MYSQL必读
提升性能的建议:
1.如果opened_tables太大,应该把my.cnf中的table_cache变大
2.如果Key_reads太大,则应该把my.cnf中key_buffer_size变大.可以用Key_reads/Key_read_requests计算出cache失败率
3.如果Handler_read_rnd太大,则你写的SQL语句里很多查询都是要扫描整个表,而没有发挥键的作用
4.如果Threads_created太大,就要增加my.cnf中thread_cache_size的值.可以用Threads_created/Connections计算cache命中率
5.如果Created_tmp_disk_tables太大,就要增加my.cnf中tmp_table_size的值,用基于内存的临时表代替基于磁盘的 MYSQL必读
MySQL优化小案例:key_buffer_size
key_buffer_size是对MyISAM表性能影响最大的一个参数,下面一台以MyISAM为主要存储引擎服务器的配置:MYSQL必读
mysql> SHOW VARIABLES LIKE '%key_buffer_size%';
下面查看key_buffer_size的使用情况:MYSQL必读
mysql> SHOW GLOBAL STATUS LIKE '%key_read%';
+-------------------+-----------------+
| Variable_name | Value |
+-------------------+-----------------+
| Key_read_requests | 2454354135490 |
| Key_reads | 23490 |
+-------------------+-----------------+
2 rows in set (0.00 sec)
一共有Key_read_requests个索引哀求,一共发生了Key_reads次物理IOMYSQL必读
Key_reads/Key_read_requests ≈ 0.1%以下比较好.MYSQL必读
根据上述情况维易PHP小编把key_buffer_size设置为2048M办理了问题.MYSQL必读
《Mysql必读优化mysql之key_buffer_size设置》是否对您有启发,欢迎查看更多与《Mysql必读优化mysql之key_buffer_size设置》相关教程,学精学透。维易PHP学院为您提供精彩教程。