您好,登錄后才能下訂單哦!
MySQL中怎么查詢緩存,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
可以通過下面的SQL查看當前查詢緩存相關參數狀態: SHOW VARIABLES LIKE '%query_cache%'; 輸出結果類似下面:
query_cache_type
查詢緩存類型,有0、1、2三個取值。0則不使用查詢緩存。1表示始終使用查詢緩存。2表示按需使用查詢緩存。
如果query_cache_type為1而又不想利用查詢緩存中的數據,可以用下面的SQL:
SELECT SQL_NO_CACHE * FROM my_table WHERE condition;
如果值為2,要使用緩存的話,需要使用SQL_CACHE開關參數:
SELECT SQL_CACHE * FROM my_table WHERE condition;
query_cache_size
默認情況下query_cache_size為0,表示為查詢緩存預留的內存為0,則無法使用查詢緩存。所以我們需要設置query_cache_size的值:
SET GLOBAL query_cache_size = 134217728;
注意上面的值如果設得太小不會生效。比如我用下面的SQL設置query_cache_size大小:
SET GLOBAL query_cache_size = 4000;
SHOW WARNINGS;
會返回下面的結果:
緩存條件 查詢緩存可以看做是SQL文本和查詢結果的映射。如果第二次查詢的SQL和第一次查詢的SQL完全相同(注意必須是完全相同,即使多一個空格或者大小寫 不同都認為不同)且開啟了查詢緩存,那么第二次查詢就直接從查詢緩存中取結果,可以通過下面的SQL來查看緩存命中次數(是個累加值): SHOW STATUS LIKE 'Qcache_hits'; 另外即使完全相同的SQL,如果使用不同的字符集、不同的協議等也會被認為是不同的查詢而分別進行緩存。 緩存數據失效時機 在表的結構或數據發生改變時,查詢緩存中的數據不再有效。有這些INSERT、UPDATE、 DELETE、TRUNCATE、ALTER TABLE、DROP TABLE或DROP DATABASE會導致緩存數據失效。所以查詢緩存適合有大量相同查詢的應用,不適合有大量數據更新的應用。 清理查詢緩存 可以使用下面三個SQL來清理查詢緩存: 1.FLUSH QUERY_CACHE; 2.RESET QUERY_CACHE; 3.FLUSH TABLES;<span></span> 第一個SQL會清理查詢緩存內存碎片。第二個SQL會從查詢緩存中移出所有查詢。第三個SQL會關閉所有打開的表,同時該操作將會清空查詢緩存中的內容。
關于MySQL中怎么查詢緩存問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。