• MySQL关闭查询缓存(QC)的两种方法


    MySQL Query Cache 会缓存select 查询,安装时默认是开启的,但是如果对表进行INSERT, UPDATE, DELETE, TRUNCATE, ALTER TABLE, DROP TABLE, or DROP DATABASE等操作时,之前的缓存会无效并且删除。这样一定程度上也会影响我们数据库的性能。所以对一些频繁的变动表的情况开启缓存是不明智的。还有一种情况我们测试数据库性能的时候也要关闭缓存,避免缓存对我们测试数据的影响。下面介绍两种不使用缓存的方案:

    第一种:方案

    首先查看数据库的缓存是开启的

    MySQL关闭查询缓存(QC)的两种方法

    查看缓存命中情况

    MySQL关闭查询缓存(QC)的两种方法

    然后对表查询了两次,可以看到,第二次明显的缓存了数据。然后查看命中缓存变为了1

    MySQL关闭查询缓存(QC)的两种方法

    下面就开始关闭缓存。关闭缓存有两种放法,一种临时的,一种永久的。

    临时的直接再命令行执行

    set global query_cache_size=0

    set global query_cache_type=0

    永久的修改配置文件my.cnf ,添加下面的配置即可。

    query_cache_type=0

    query_cache_size=0

    我们用永久的修改方法

    MySQL关闭查询缓存(QC)的两种方法

    注意改完要重启数据库,然后再进去看看

    MySQL关闭查询缓存(QC)的两种方法

    然后开始查询 很明显没有命中缓存。

    MySQL关闭查询缓存(QC)的两种方法

    第二种方案:

    再开启缓存的情况下我们对sql语句做一些改动

    Select sql_no_cache count(*) from users; 不缓存

    Select sql_cache count(*) from users; 缓存(也可以不加,默认缓存已经开启了)

    首先查看数据库缓存开启中

    MySQL关闭查询缓存(QC)的两种方法

    缓存命中为0

    MySQL关闭查询缓存(QC)的两种方法

    然后开始查询,查询两次后发现缓存命中率依然为0,很明显没有查询缓存。

    MySQL关闭查询缓存(QC)的两种方法

    然后不加sql_no_cache 查询,很明显缓存命中为1,开始查询缓存了

    MySQL关闭查询缓存(QC)的两种方法

  • 相关阅读:
    CF821E 【Okabe and El Psy Kongroo】
    BZOJ1231: [Usaco2008 Nov]mixup2 混乱的奶牛
    P1896 [SCOI2005]互不侵犯
    QBXT Day 2 记录
    CF467C George and Job
    【luogu P3373 线段树2】 模板
    【luogu P1306 斐波那契公约数】 题解
    【luogu T24743 [愚人节题目5]永世隔绝的理想乡】 题解
    【luogu P1903 [国家集训队]数颜色】 题解
    莫队算法~讲解
  • 原文地址:https://www.cnblogs.com/eyesfree/p/7232559.html
Copyright © 2020-2023  润新知