標籤:避免 sele 資料 sel qcache glob 開啟 you 方法
MySQL Query Cache 會緩衝select 查詢,安裝時預設是開啟的,但是如果對錶進行INSERT, UPDATE, DELETE, TRUNCATE, ALTER TABLE, DROP TABLE, or DROP DATABASE等操作時,之前的緩衝會無效並且刪除。這樣一定程度上也會影響我們資料庫的效能。所以對一些頻繁的變動表的情況開啟緩衝是不明智的。還有一種情況我們測試資料庫效能的時候也要關閉緩衝,避免緩衝對我們測試資料的影響。下面介紹兩種不使用緩衝的方案:第一種:方案首先查看資料庫的緩衝是開啟的show variables like "%cache%";MySQL關閉查詢快取(QC)的兩種方法查看快取命中情況show status like "%qcache%";MySQL關閉查詢快取(QC)的兩種方法然後對錶查詢了兩次,可以看到,第二次明顯的緩衝了資料。然後查看命中緩衝變為了1MySQL關閉查詢快取(QC)的兩種方法下面就開始關閉緩衝。關閉緩衝有兩种放法,一種臨時的,一種永久的。臨時的直接再命令列執行set global query_cache_size=0set global query_cache_type=0永久的修改設定檔my.cnf ,添加下面的配置即可。query_cache_type=0query_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)的兩種方法快取命中為0MySQL關閉查詢快取(QC)的兩種方法然後開始查詢,查詢兩次後發現快取命中率依然為0,很明顯沒有查詢快取。MySQL關閉查詢快取(QC)的兩種方法然後不加sql_no_cache 查詢,很明顯快取命中為1,開始查詢快取了MySQL關閉查詢快取(QC)的兩種方法
MySQL關閉查詢快取(QC)的兩種方法