MySQL Query Cache 會緩存select 查詢,安裝時默認是開啟的,但是如果對表進行INSERT, UPDATE, DELETE, TRUNCATE, ALTER TABLE, DROP TABLE, or DROP DATABASE等操作時,之前的緩存會無效並且刪除。這樣一定程度上也會影響我們數據庫的性能。所以對一些頻繁的變動表的情況開啟緩存是不明智的。還有一種情況我們測試數據庫性能的時候也要關閉緩存,避免緩存對我們測試數據的影響。下面介紹兩種不使用緩存的方案:
第一種:方案
首先查看數據庫的緩存是開啟的
查看緩存命中情況
然后對表查詢了兩次,可以看到,第二次明顯的緩存了數據。然后查看命中緩存變為了1
下面就開始關閉緩存。關閉緩存有兩種放法,一種臨時的,一種永久的。
臨時的直接再命令行執行
set global query_cache_size=0
set global query_cache_type=0
永久的修改配置文件my.cnf ,添加下面的配置即可。
query_cache_type=0
query_cache_size=0
我們用永久的修改方法
注意改完要重啟數據庫,然后再進去看看
然后開始查詢 很明顯沒有命中緩存。
第二種方案:
再開啟緩存的情況下我們對sql語句做一些改動
Select sql_no_cache count(*) from users; 不緩存
Select sql_cache count(*) from users; 緩存(也可以不加,默認緩存已經開啟了)
首先查看數據庫緩存開啟中
緩存命中為0
然后開始查詢,查詢兩次后發現緩存命中率依然為0,很明顯沒有查詢緩存。
然后不加sql_no_cache 查詢,很明顯緩存命中為1,開始查詢緩存了