MySQL使用查询缓存

  1. 查询服务是否已开启缓存

    执行show variables like '%query_cache%';查看缓存状态

    image-20191011131957961

    Variable_name: query_cache_type为缓存状态,ON表示开启,OFF表示关闭

  2. 开启/关闭使用查询缓存

    修改my.cnf文件进行开启和关闭

    [mysqld]中添加/修改:
    query_cache_size = 20M
    query_cache_type = ON/OFF

    **修改完成后重启MySQL服务:service mysql restart/systemctl mysql restart **

  3. 查询缓存使用情况

    执行show status like 'qcache%';查询缓存使用情况

    image-20191011132634921

    因为本机MySQL未开启查询缓存,所以此处和使用相关的属性均为0


    属性解释:

    属性 释义
    Qcache_free_blocks 缓存中相邻内存块的个数。数目大说明可能有碎片。FLUSH QUERY CACHE会对缓存中的碎片进行整理,从而得到一个空闲块。
    Qcache_free_memory 缓存中空闲内存大小
    Qcache_hits 缓存命中次数,命中一次就+1
    Qcache_inserts 查询次数,命中次数/查询次数=缓存命中率
    Qcache_lowmem_prunes 缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数,如果数字不断增长,就可能碎片非常严重,或者内存很少,通过Qcache_free_blocks、Qcache_free_memory来分析具体情况
    Qcache_not_cached 不适合进行缓存的查询的数量
    Qcache_queries_in_cache 当前缓存的查询(和响应)的数量
    Qcache_total_blocks 缓存中块的数量