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)的兩種方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM