您现在的位置: 首页  > MySQL > 性能与优化
通行证登录
 

Mysql主要配置参数3:query_cache_size查询缓存_第3页

作者:[51ak ]

下面sql查询缓存认为是不同的:
SELECT * FROM tbl_name
Select * from tbl_name

 


查询缓存相关参数
# 指定MySQL查询缓冲区的大小。可以通过在MySQL控制台执行以下命令观察
# 代码: # > SHOW VARIABLES LIKE '%query_cache%';# > SHOW STATUS LIKE 'Qcache%';如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况;
# 如果Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,如果该值较小反而会影响效率,那么可以考虑不用查询缓冲;Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多。
# 从4.0.1开始,MySQL提供了查询缓冲机制。使用查询缓冲,MySQL将SELECT语句和查询结果存放在缓冲区中,今后对于同样的SELECT语句(区分大小写),将直接从缓冲区中读取结果。根据MySQL用户手册,使用查询缓冲最多可以达到238%的效率。
# 通过检查状态值Qcache_*,可以知道query_cache_size设置是否合理(上述状态值可以使用SHOW STATUS LIKE ‘Qcache%’获得)。如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况,如果Qcache_hits的值也非常大,则表明查询缓冲使用非常频繁,此时需要增加缓冲大小;如果Qcache_hits的值不大,则表明你的查询重复率很低,这种情况下使用查询缓冲反而会影响效率,那么可以考虑不用查询缓冲。此外,在SELECT语句中加入SQL_NO_CACHE可以明确表示不使用查询缓冲。
# 与查询缓冲有关的参数还有query_cache_type、query_cache_limit、query_cache_min_res_unit。query_cache_type指定是否使用查询缓冲,可以设置为0、1、2,该变量是SESSION级的变量。query_cache_limit指定单个查询能够使用的缓冲区大小,缺省为1M。query_cache_min_res_unit是在4.1版本以后引入的,它指定分配缓冲区空间的最小单位,缺省为4K。检查状态值Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多,这就表明查询结果都比较小,此时需要减小query_cache_min_res_unit。

1)查询缓存不适用于存储经常变化的数据表相关的查询(因为会失效,占内存且频繁过期)结合搜房网的大多数数据在网上的经常变化的特点。query_cache_type可以设置成2,对一些需要常用的查询 (例如城市分类表 栏目分类表的查询) 采用SELECT SQL_CACHE 前缀手工指定缓存。这样一方面可以很好的利用查询缓存,又不会让频敏更新的查询挤占查询空间
2)如果不启用查询缓存(query_cache_type =0) 要把query_cache_size也设置成0 否则内存也会被浪费

 

 

首页上一页123下一页尾页  分页:3/3页