mysql高速缓存相关参数设置

参考链接:http://blog.knowsky.com/183319.htm


查看mysql cache功能是否开启: show variables like '%query_cache%';结果如下

mysql 缓存开启及测试_数据库

如果query_cache_type=ON,query_cache_size的值不为0则表示mysql cache已开启。

如果没开启,可在my,.cnf中配置query_cache_type=1(为1表示开启,为0表示关闭) ,query_cache_size=128M(该值可随便写) ,开启。 

[参数说明]: 

    have_query_cache = yes : 表示当前版本的mysql是否支持Query cache 。为YES表示支持。

    query_cache_type = ON : 表示已开启查询缓存功能。

    query_cache_size = 205426: 查询缓存的大小,该值最好设置为1024的整数倍。


查询缓存功能开启后,该功能是否生效,可用show status like '%qcache%';来测试。结果如下:

mysql 缓存开启及测试_数据库_02

[参数说明]: 

    Qcache_free_blocks : 表示缓存中目前还剩多少的blocks(块)

    Qcache_free_memory: 表示查询缓存的内存大小

    Qcache_hits: 表示有多少次命中缓存

    Qcache_inserts : 表示有多少次未命中缓冲,为命中缓存则直接把该语句加入缓存中。

    Qcache_lowmem_prunes: 该参数记录有多少条查询因为内存不足而被移除出缓存

    Qcache_not_cached: 因为query_cache_type的设置而没有被缓存的数量

                Qcache_queries_in_cache:当前缓存中缓存的查询数量

                Qcache_total_blocks : 当前缓存的blocks数量


测试开始:

  首先,查看 show status like '%qcache%'; 结果如下

 mysql 缓存开启及测试_数据库_03 

 接下来执行,select name,address from  teacher  where id =1; 后再show status like '%qcache%'; 查看 ,结果如下:

 mysql 缓存开启及测试_数据库_04

 再次执行,select name,address from  teacher  where id =1; 后再show status like '%qcache%'; 查看 ,结果如下:

 mysql 缓存开启及测试_数据库_05

 从图中可看出,Qcache_hits增加了1,而Qcache_inserts的值不变。 由此可知: 查询缓存成功了。