您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“MySQL中query_cache_type參數與使用的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“MySQL中query_cache_type參數與使用的示例分析”這篇文章吧。
把查詢到的結果緩存起來,下次再執行相同查詢時就可以直接從結果集中取;這樣就比重新查一遍要快的多。
之所以查詢緩存并沒有能起到提升性能的做用,客觀上有如下兩點原因
1、把SQL語句的hash值作為鍵,SQL語句的結果集作為值;這樣就引起了一個問題如 select user from mysql.user 和 SELECT user FROM mysql.user
這兩個將會被當成不同的SQL語句,這個時候就算結果集已經有了,但是一然用不到。
2、當查詢所基于的低層表有改動時與這個表有關的查詢緩存都會作廢、如果對于并發度比較大的系統這個開銷是可觀的;對于作廢結果集這個操作也是要用并發
訪問控制的,就是說也會有鎖。并發大的時候就會有Waiting for query cache lock 產生。
3、至于用不用還是要看業務模型的。
query_cache_type 這個系統變量控制著查詢緩存工能的開啟的關閉。
query_cache_type=0時表示關閉,1時表示打開,2表示只要select 中明確指定SQL_CACHE才緩存。
這個參數的設置有點奇怪,1、如果事先查詢緩存是關閉的然而用 set @@global.query_cache_type=1; 會報錯
ERROR 1651 (HY000): Query cache is disabled; restart the server with query_cache_type=1 to enable it
2、如果事先是打開著的嘗試去閉關它,那么這個關閉也是不完全的,這種情況下查詢還是會去嘗試查找緩存。
最好的關閉查詢緩存的辦法就是把my.cnf 中的query_cache_type=0然后再重啟mysql。
have_query_cache 表示這個mysql版本是否支持查詢緩存。
query_cache_limit 表示單個結果集所被允許緩存的最大值。
query_cache_min_res_unit 每個被緩存的結果集要占用的最小內存。
query_cache_size 用于查詢緩存的內存大小。
Qcache_free_memory 查詢緩存目前剩余空間大小。
Qcache_hits 查詢緩存的命中次數。
Qcache_inserts 查詢緩存插入的次數。
也就是說緩存的命中率為 Qcache_hits/(Qcache_hits+Qcache_inserts)
以上是“MySQL中query_cache_type參數與使用的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。