码迷,mamicode.com
首页 > 数据库 > 详细

黄聪:Mysql5.6缓存命中率

时间:2016-02-28 19:50:24      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

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

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

再来看看Com_select变量:

mysql> show global status like Com_select;  
+---------------+-------+  
| Variable_name | Value |  
+---------------+-------+  
| Com_select    | 46    |  
+---------------+-------+  

 

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

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

 

查询缓存变量:

mysql> show global status like QCache%  
+-------------------------+----------+  
| Variable_name           | Value    |  
+-------------------------+----------+  
| Qcache_free_blocks      | 1        |  
| Qcache_free_memory      | 18856920 |  
| Qcache_hits             | 3        |  
| Qcache_inserts          | 20       |  
| Qcache_lowmem_prunes    | 0        |  
| Qcache_not_cached       | 26       |  
| Qcache_queries_in_cache | 0        |  
| Qcache_total_blocks     | 1        |  
+-------------------------+----------+ 

 

因此本例中的查询缓存命中率 ≈ 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

缓存中块的数量。

黄聪:Mysql5.6缓存命中率

标签:

原文地址:http://www.cnblogs.com/huangcong/p/5225317.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!