源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

优化mysql之key_buffer_size设置

  • 时间:2021-10-08 18:02 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:优化mysql之key_buffer_size设置
[b]key_buffer_size[/b] 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) [b]提升性能的建议:[/b] 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的值,用基于内存的临时表代替基于磁盘的  [b]MySQL优化小案例:key_buffer_size[/b] key_buffer_size是对MyISAM表性能影响最大的一个参数,下面一台以MyISAM为主要存储引擎服务器的配置: mysql> SHOW VARIABLES LIKE '%key_buffer_size%';    下面查看key_buffer_size的使用情况: 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次物理IO Key_reads/Key_read_requests ≈ 0.1%以下比较好。 根据上述情况编程素材网小编把key_buffer_size设置为2048M解决了问题。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部