一. 查詢緩存 1.開啟緩存 設置了緩存開啟,緩存最大限制128M,重啟服務後,再次查詢 2 測試緩存 現在是緩存2次,命中一次 上面是二個查詢sql語句,此時緩存數是4,如下圖所示: 此時緩存數是6,說明緩存區分where條件值的大小寫。同樣也會區分sql關鍵詞的大小寫。如下圖所示: 設置好que ...
一. 查詢緩存
1.開啟緩存
[root@xuegod64 etc]# vim my.cnf
設置了緩存開啟,緩存最大限制128M,重啟服務後,再次查詢
-- 開啟查詢緩存後 SHOW VARIABLES LIKE '%query_cache%';
2 測試緩存
現在是緩存2次,命中一次
SELECT ID FROM User1 WHERE ID=2 SELECT Age FROM User1 WHERE ID=2
上面是二個查詢sql語句,此時緩存數是4,如下圖所示:
--再次查詢上面相同的sql語句,此時命中率結果為3,緩存數還是4 SELECT ID FROM User1 WHERE ID=2 SELECT Age FROM User1 WHERE ID=2
--查詢相同的sql語句,條件值大小寫不一樣 SELECT ID FROM User1 WHERE `Name`='Abc' SELECT ID FROM User1 WHERE `Name`='aBc'
此時緩存數是6,說明緩存區分where條件值的大小寫。同樣也會區分sql關鍵詞的大小寫。如下圖所示:
設置好query_cache_size值後,重新啟動服務初始化時:query_cache_size==Qcache_free_memory的值。
緩存的命中率公式為: Qcache_hits/(Qcache_hits+Qcache_inserts)。
總結:根據MySQL用戶手冊,使用查詢緩衝最多可以達到238%的效率。但開起緩存,前提條件是你有大量的相同或相似的查詢,而很少改變表裡的數據,否則沒有必要使用此功能。