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 数量