一.mysql的查询缓存
1.查询缓存的命中率计算:Qcache_hits/(Qcache_hits + Com_select)二.查询缓存进行调优1.Query_cache_type,这个选项表示缓存是否被激活取值为ON,OFF,DEMAND,DEMAND的意思是包含了SQL_CACHE选项的查询才能被缓存2.Query_cache_size,分给给查询缓存的总内存,以字节为单位,他必须是1024的倍数3.Query_cache_min_res_unit,分配缓存块的最小值4.Query_cache_limit,限制了mysql存储的最大结果,默认是1m,如果在缓存的过程中超过了限制,Qcache_not_cached的值被增大5.Query_cache_wlock_invalidate,是否缓存其他连接已经锁定了的表,默认是OFF.三.减少碎片仔细的选择Query_cache_min_res_unit的值,可以用以下公式获取参考值(query_cache_size - Qcache_free_memory) / Qcache_queries_in_cache得到一个平均的大小移除碎片:FLUSH QUERY CACHE,这个命令不会从缓存中移除查询,只有RESET QUERY CACHE才会这么做四.如果临时禁用缓存可以将query_cache_size设置为0,因为改变query_cache_type不会影响已经打开的连接五.通用缓存优化1.不要让query_cache_size过大,256m已经足够了2.使用较小的表3.成批写入操作4.写入过多的数据库,适合关闭缓存