Mysql缓存命中率

欢迎关注本人公众号



MySQL缓存命中率,网上说法不一,下面我说下我的看法,大家轻拍:

总的select查询数等于com_select(没命中) + qcache_hits(命中) + 解析错误的查询。

再来看看Com_select变量:

  1. mysql> show global status like 'Com_select';  
  2. +---------------+-------+  
  3. | Variable_name | Value |  
  4. +---------------+-------+  
  5. | Com_select    | 46    |  
  6. +---------------+-------+  

com_select等于qcache_inserts(缓存失效) + qcache_not_cache(没有缓存) + 权限检查错误的查询。

因此,

Mysql的查询缓存命中率 ≈ qcache_hits / (qcache_hits + com_select)

 

查询缓存变量:

  1. mysql> show global status like 'QCache%'  
  2. +-------------------------+----------+  
  3. | Variable_name           | Value    |  
  4. +-------------------------+----------+  
  5. | Qcache_free_blocks      | 1        |  
  6. | Qcache_free_memory      | 18856920 |  
  7. | Qcache_hits             | 3        |  
  8. | Qcache_inserts          | 20       |  
  9. | Qcache_lowmem_prunes    | 0        |  
  10. | Qcache_not_cached       | 26       |  
  11. | Qcache_queries_in_cache | 0        |  
  12. | Qcache_total_blocks     | 1        |  
  13. +-------------------------+----------+  

因此本例中的查询缓存命中率 ≈ 3/(3+46) = 6.12%

 

查询缓存变量含义:

Qcache_free_blocks

目前还处于空闲状态的 Query Cache中内存 Block 数目,数目大说明可能有碎片。FLUSH QUERY CACHE会对缓存中的碎片进行整理,从而得到一个空闲块。

Qcache_free_memory

缓存中的空闲内存总量。

Qcache_hits

缓存命中次数。

Qcache_inserts

缓存失效次数。

Qcache_lowmem_prunes

缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。这个数字最好长时间来看;如果这个数字在不断增长,就表示可能碎片非常严重,或者内存很少。(上面的free_blocks和free_memory可以告诉您属于哪种情况)。

Qcache_not_cached

不适合进行缓存的查询的数量,通常是由于这些查询不是SELECT语句以及由于query_cache_type设置的不会被Cache的查询。

Qcache_queries_in_cache

当前缓存的查询(和响应)的数量。

Qcache_total_blocks

缓存中块的数量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值