query cache 是mysql性能优化时的重要指标,通过查看query cache的状态信息,就可以知道例如 缓存是否有碎片、命中缓存的数量、没用到缓存的次数 ……
使用方法
mysql>show global status like 'qcache%';
结果项说明
Qcache_free_blocks
缓存中相邻内存块的个数,数目大说明可能有碎片
使用 FLUSH QUERY CACHE 会对缓存中的碎片进行整理,从而得到一个空闲块
Qcache_free_memory
缓存中的空闲内存
Qcache_hits
多少次命中,通过这个参数可以查看到querycache的基本效果
Qcache_inserts
多少次未命中然后插入,通过“Qcache_hits”和“Qcache_inserts”两个参数我们就可以算出Query Cache 的命中率了
Query Cache 命中率 =
Qcache_hits / ( Qcache_hits + Qcache_inserts )
Qcache_lowmem_prunes
因为内存不足而被清除出query cache 的query数量
通过Qcache_lowmem_prunes 和 Qcache_free_memory 相互结合,能够更清楚地了解到系统中query cache的内存大小是否足够,是否非常频繁地出现因为内存不足而有query被换出的情况
Qcache_not_cached
不适合进行缓存的查询数量,例如一些查询使用了now()之类的函数
Qcache_queries_in_cache
当前Query Cache 中cache 的Query 数量
Qcache_total_blocks
当前Query Cache 中的block 数量