免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3436 | 回复: 0

mysql优化参数公式 [复制链接]

论坛徽章:
0
发表于 2009-12-25 16:14 |显示全部楼层
一 连接数Max_used_connections / max_connections * 100% ≈ 85%
最大连接数占上限连接数的85%左右,如果发现比例在10%以下,MySQL服务器连接数上限设置的过高了。
二 Key_buffer_size (32位 2G  64位4G ) 1, 索引未命中缓存的概率   key_cache_miss_rate = Key_reads / Key_read_requests * 100%key_cache_miss_rate在0.1%以下都很好(每1000个请求有一个直接读硬盘),如果key_cache_miss_rate在0.01%以下的话,key_buffer_size分配的过多,可以适当减少。
2,key_blocks_*参数:
    Key_blocks_unused  未使用的缓存簇(blocks)数
    Key_blocks_used     曾经用到的最大的blocks数
    Key_blocks_unused 太小要么增加key_buffer_size,要么就是过渡索引了,把缓存占满了。比较理想的设置:
    Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100% ≈ 80%

三 临时表
   Created_tmp_disk_tables / Created_tmp_tables * 100%
'max_heap_table_size'= 268435456只有256MB以下的临时表才能全部放内存,超过的就会用到硬盘临时表。

Open Table情况
Open_tables表示打开表的数量,Opened_tables表示打开过的表数量,如果Opened_tables数量过大,说明配置中table_cache(5.1.3之后这个值叫做table_open_cache)值可能太小
比较合适的值为:
Open_tables / Opened_tables * 100% >= 85%
Open_tables / table_open_cache * 100%

五、进程使用情况
  Threads_created表示创建过的线程数,如果发现Threads_created值过大的话,表明MySQL服务器一直在创建线程,这也是比较耗资源,可以适当增加配置文件中thread_cache_size.

查询缓存(query cache)
query_cache_min_res_unit的配置是一柄”双刃剑”,默认是4KB,设置值大对大数据查询有好处,但如果你的查询都是小数据查询,就容易造成内存碎片和浪费。

查询缓存碎片率 = Qcache_free_blocks / Qcache_total_blocks * 100%

如果查询缓存碎片率超过20%,可以用FLUSH QUERY CACHE整理缓存碎片,或者试试减小query_cache_min_res_unit,如果你的查询都是小数据量的话。

查询缓存利用率 = (query_cache_size - Qcache_free_memory) / query_cache_size * 100%

查询缓存利用率在25%以下的话说明query_cache_size设置的过大,可适当减小;查询缓存利用率在80%以上而且Qcache_lowmem_prunes > 50的话说明query_cache_size可能有点小,要不就是碎片太多。

查询缓存命中率 = (Qcache_hits - Qcache_inserts) / Qcache_hits * 100%

示例服务器 查询缓存碎片率 20.46%,查询缓存利用率 62.26%,查询缓存命中率 1.94%,命中率很差,可能写操作比较频繁吧,而且可能有些碎片。

、排序使用情况
Sort_merge_passes   太大 说明Sort_buffer_size 肯小了

八、文件打开数(open_files)

    比较合适的设置:Open_files / open_files_limit * 100%

九,锁表
   如果Table_locks_immediate / Table_locks_waited > 5000,最好采用InnoDB引擎

表扫描率 = Handler_read_rnd_next / Com_select

如果表扫描率超过4000,说明进行了太多表扫描,很有可能索引没有建好,增加read_buffer_size值会有一些好处,但最好不要超过8MB。

Out of memory   ???

key_buffer_size + tmp_table_size + (read_buffer_size + sort_buffer_size + read_rnd_buffer_size +join_buffer_size )*max_connections = ?


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/78700/showart_2130771.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP