MySQL数据库怎么查询缓冲机制
通过调节以下几个参数可以知道query_cache_size设置得是否合理:
Qcacheinserts
Qcachehits
Qcachelowmemprunes
Qcachefreeblocks
Qcachetotalblocks
Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况,同时Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,此时需要增加缓冲大小Qcache_hits的值不大,则表明你的查询重复率很低,这种情况下使用查询缓冲反而会影响效率,那么可以考虑不用查询缓冲。此外,在SELECT语句中加入SQL_NO_CACHE可以明确表示不使用查询缓冲。
Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多query_cache_type指定是否使用查询缓冲。
MySQL数据库怎么查询缓冲机制
如果设置为:
query_cache_size=32M
query_cache_type=1
得到如下状态值:
Qcachequeriesincache12737//表明目前缓存的条数。
Qcacheinserts20649006
Qcachehits79060095//看来重复查询率还挺高的。
Qcachelowmemprunes617913//有这么多次出现缓存过低的情况。
Qcachenotcached189896
Qcachefreememory18573912//目前剩余缓存空间。
Qcachefreeblocks5328//这个数字似乎有点大,碎片不少
Qcachetotalblocks30953
如果内存允许,还可以将query_cache_size再设大一些。