1,检查mysql 是不是开启了 高速缓存 query_cache
SHOW VARIABLES LIKE ‘%query_cache%’
结果
have_query_cache YES 是否支持高速缓存
query_cache_limit 1048576 不缓存大于这个值的查询
query_cache_size 1048576 高速缓存大小,如果为0 证明没有开启
query_cache_type OFF 缓存类型,0为off 关闭状态,1 为全缓存,除非select 中使用SQL_NO_CACHE,2 为 只有select 中使用SQL_CACHE C会被缓存
这些设置可以到mysql的配置文件my.ini或my.cnf 中更改
配置好之后我们来测试下
语句:
SHOW STATUS LIKE ‘%qcache%’
Qcache_free_blocks 2 缓存中还有多少剩余的blocks 也就是碎片
Qcache_free_memory 1037344 空闲的缓存大小,可以根据这个值来调整缓存的大小
Qcache_hits 0 命中率,也就是缓存中的查询没执行了多少次
Qcache_inserts 4 表示新来的查询找不到缓存中查询只能插入到缓存中,值越大证明缓存应用的不好
Qcache_lowmem_prunes 0 表示内存不足内移除查询缓存
Qcache_not_cached 3 由于query_cache_type 设置而没有被执行的数量
Qcache_queries_in_cache 2 当前查询缓存中缓存数量
Qcache_total_blocks 7 当前缓存的blocks 数量
可以多次执行select 语句来测试上面这些值的变化。