MySQL-查询结果缓存

时间:2021-05-17 02:45:54

1、缓存必备:

SQL文相同,数库表字段构、记录不变,大小写不敏感,字符集敏感

2、提缓存:

   缓存配高、分区

3、多个应用多配置

4、SELECT SQL_NO_CACHE/SQL_CACHE

   my.ini---------------------------------------
 
   show variables like '%cache%';

   --query_cache_type(0[off], 1[on], 2[demand]

   have_query_cache: 为YES表示缓存开启

  query_cache_type: on表示默认使用缓存

  query_cache_limit: 能缓存的单条查询结果容量最大值, 超过此值则不会缓存

  query_cache_size: 查询缓存总共占内存空间大小, 一般设置为256M为一个不错的大小



   show status like '%cache%';


   Qcache_free_blocks: 查询缓存中空闲的block数目

  Qcache_free_memory: 空闲的内存总量

  Qcache_cache_hits: 命中的次数

  Qcache_cache_inserts: 向缓存中插入新的缓存结果的次数(也就是没有命中的次数)

  Qcache_lowmem_prunes: 当 Query Cache内存容量不够,需要从中删除老的单条查询结果以给新的查询结果对象使用的次数

  Qcache_not_cached: 没有被缓存的SQL数, 包括无法被缓存的SQL以及由于query_cache_type设置的不会被缓存的SQL

  Qcache_queries_in_cache: 目前在内存中的SQL数量

  Qcache_total_blocks: 内存中总的Block数量