免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8043 | 回复: 11
打印 上一主题 下一主题

请教如何来计算mysql 查询缓存命中率 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-07 10:58 |只看该作者 |倒序浏览
问题是这样,比如mysql中查询缓存的数据如下:
mysql> SHOW STATUS LIKE 'qcache%';
+-------------------------+------------+
| Variable_name           | Value      |
+-------------------------+------------+
|Qcache_free_blocks      | 5216       |
| Qcache_free_memory      | 14640664   |
| Qcache_hits             | 2581646882 |
| Qcache_inserts          | 360210964  |
| Qcache_lowmem_prunes    | 281680433  |
| Qcache_not_cached       | 79740667   |
| Qcache_queries_in_cache | 16927      |
| Qcache_total_blocks     | 47042      |
+-------------------------+------------+
8 rows in set (0.00 sec)

网上一些资料上面说.命中次数除以插入次数就是不中比率;用 1 减去这个值就是命中率。在上面这个例子中,大约有 87% 的查询都在缓存中命中。

个人感觉这个不太对的,大虾们这个准确的查询缓存命中率应该怎么来计算啊?谢谢

论坛徽章:
0
2 [报告]
发表于 2009-01-07 13:41 |只看该作者
这个方法就对啊
怎么不对呢

论坛徽章:
0
3 [报告]
发表于 2009-01-07 14:51 |只看该作者
原帖由 simeiren 于 2009-1-7 13:41 发表
这个方法就对啊
怎么不对呢



按上面那个公式算出来结果不对啊

[ 本帖最后由 joey.xiang 于 2009-1-7 14:52 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-01-07 21:42 |只看该作者
你先把你的query_cache_size 加大吧

论坛徽章:
0
5 [报告]
发表于 2009-01-07 23:52 |只看该作者
原帖由 yueliangdao0608 于 2009-1-7 21:42 发表
你先把你的query_cache_size 加大吧


什么意思啊,上面的参数表明缓存设置的不够吗?

那计算缓存命中率应该怎么来算啊?

论坛徽章:
0
6 [报告]
发表于 2009-01-08 11:44 |只看该作者

回复 #5 joey.xiang 的帖子

人们经常这样算:
1-key_reads/key_read_requests
不过你也可以简单计算:
Qcache_hits/Com_select

论坛徽章:
0
7 [报告]
发表于 2009-01-08 12:20 |只看该作者
原帖由 yueliangdao0608 于 2009-1-8 11:44 发表
人们经常这样算:
1-key_reads/key_read_requests
不过你也可以简单计算:
Qcache_hits/Com_select


汗,这个是索引命中率吧,别人说query cache hit rate哦~第二个才是~

论坛徽章:
0
8 [报告]
发表于 2009-01-09 08:12 |只看该作者
原帖由 andrefun 于 2009-1-8 12:20 发表


汗,这个是索引命中率吧,别人说query cache hit rate哦~第二个才是~


mysql> show status like "Qcache%";
+-------------------------+----------+
| Variable_name           | Value    |
+-------------------------+----------+
| Qcache_free_blocks      | 13       |
| Qcache_free_memory      | 33247104 |
| Qcache_hits             | 764      |
| Qcache_inserts          | 811      |
| Qcache_lowmem_prunes    | 0        |
| Qcache_not_cached       | 717221   |
| Qcache_queries_in_cache | 162      |
| Qcache_total_blocks     | 379      |
+-------------------------+----------+
8 rows in set (0.00 sec)

mysql> show status like "Com_select";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_select    | 1     |
+---------------+-------+
1 row in set (0.00 sec)

那我下面这个mysql环境的查询缓存命中率是用 Qcache_hits  /Com_select 来计算吗 那结果为764对吗?
xxdxxd 该用户已被删除
9 [报告]
发表于 2009-02-11 12:19 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
xxdxxd 该用户已被删除
10 [报告]
发表于 2009-02-11 12:19 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP