查詢快取:
MySQL提供的資料快取QueryCache,用于快取SELECT查詢的結果
默認不開啟,需要在組態檔中開啟快取(my.ini/my.cnf)
在[mysqld]段中,修改query_cache_type完成配置:
0:關閉
1:開啟,但是默認快取,需要增加sql-no-cache提示,放棄快取(自動全部存,手動設定哪些不存)
2:開啟,但是默認不快取,需要增加sql-cache提示,執行快取(不自動存,手動設定存哪些)
配置完畢后重啟mysql服務
使用命令:
SHOW VARIABLES LIKE 'query_cache_type';
如果VALUE顯示是DEMAND,代表開啟了,是2的方式(通常使用2的方式)
設定快取大小:
配置query_cache_size:
SHOW VARIABLES LIKE 'query_cache_size';
查看到VALUE是1048576
修改快取大小:例如這里修改為64M
SET GLOBAL query_cache_size = 64*1024*1024;
如何查詢和快取:
1的情況下直接執行SELECT陳述句就可以,如果不想快取,修改陳述句為:
SELECT sql_no_cache * FROM STUDENT WHERE ID=1;
2的情況下需要快取,那么修改陳述句為:
SELECT sql_cache * FROM STUDENT WHERE ID=1;
快取后,再次執行該SELECT陳述句耗時接近0秒
重置快取:
RESET QUERY CACHE;
快取失效時間:
如果我們執行這條陳述句
INSERT INTO STUDENT (ID,USER) VALUES (1,'XXX');
那么上面的快取將會被洗掉
也就是說,當資料表改動時,基于該資料表的任何快取,都會被洗掉,是一個表層面的管理,而不是記錄層面的管理
動態資料無法被快取:
比如當前時間,是無法快取的
SELECT sql_cache *,NOW() FROM STUDENT;
快取的檢索:
快取的檢索是依賴于SQL陳述句的字串規則,也就是說,修改了大小寫或者多加了一個空格,也會失效
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/72705.html
標籤:MySQL
上一篇:MySQL優化(3):索引
下一篇:MySQL 慢查詢日志
