Query cache(高速查询缓冲池)

来源:互联网 发布:2016年最红的网络歌曲 编辑:程序博客网 时间:2024/05/01 22:39

Mysql高速查询缓存池(简称QC

select语句和查询结果放在缓冲区中,若有同样的select语句(区分大小写),将直接从缓冲区中读取结果;

Show global status likeQcache_%查看QC可以知道QC设置时候合理;

如果QCACHE_LOWMEM_PRUNES的值非常大,则表明经常出现缓冲不够的情况;

如果QACHE_HITS的值非常大,则表明查询缓冲使用非常频繁,此时需要增加缓冲大小;

如果QCACHE_HITS的值不大则表明查询重复率低,这种情况下使用查询缓冲反而会影响效率,那么可以考虑不用查询缓冲;

select语句中加入SQL_NO_CACHE可以明确表示不使用查询缓冲;

例如SELECTsql_no_cache * from xx where yy

Query_cache_limit=2M不缓冲超过2M的查询结果;

Query_cache_min_res_unit=512k,设置每个QC单元大小,提高QC利用率(qcache_queries_in_cache不大,但Qcache_free_memory较大,就需要减少  qcache_queries_in_cache。

建议:

query_cache:有全局的锁,查询结果有变更,表变更SQL更新都要更新查询缓存,锁的粒度大 建议关闭查询缓存

关闭查询缓存2个参数:

query_cache_type=0

query_cache_size=0


0 0