关于QueryCache的一次打脸

本文探讨了MySQL中Query Cache对select语句计数的影响。在Query Cache关闭时,Com_select状态变量准确反映select语句数量。然而,当Query Cache开启,Com_select仅统计未命中缓存的select语句,而Qcache_hits则记录命中缓存的次数。总select语句数为两者之和,Query Cache命中率可通过特定公式计算。
摘要由CSDN通过智能技术生成

背景问题

  前一段时间给一套MySQL数据库加上了监控,运行一段时间后有人反馈监控到的insert,update,delete,select的数量中select的数量有像比

  本应该的量少了不少!

 

  我用的是Com_select这个status来监控的select语句的数量,应该不会有什么差错呀;没想到呀,没想到!那个数据库实例是开启了Query

  cache的,所以这个就扎心啦! 这种情况下Com_select只是记录了select语句中没有命中Query_cache的那一部分。

 

默认情况下的select统计方式

  默认情况下没有开启Query_cache所以我们可以用Com_select这个status来监控MySQL处理的select语句总数;

 

  所以总的处理成功的select语句的数量就是 Com_select的值

 

Query_cache开启情况下select的统计方式

  在Query_cache开启的情况下针对select语句的统计要分两种情况进行讨论

  1): 如果这条select语句命中了Query_cache那么Qcache_hits这个status就会加1,Com_select不受影响

  2):如果这条select语句没有命中Query_cache那么Com_select这个status加1,Querycache_hit不受影响

 

  所以总的select语句的数量就是Com_select + Querycache_hits 的值

 

  Query cache的命中率就是 Querycache_hits / (Com_select + Querycache_hits)

 

 

 

 

 

 

 

-----

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值