MySQL查詢緩存機(jī)制簡介
MySQL查詢機(jī)制是MySQL數(shù)據(jù)庫的重要組成部分,下面將對MySQL查詢緩存機(jī)制進(jìn)行詳細(xì)的介紹,希望對您能夠有所幫助。
緩存機(jī)制簡單的說就是緩存sql文本及查詢結(jié)果,如果運行相同的sql,服務(wù)器直接從緩存中取到結(jié)果,而不需要再去解析和執(zhí)行sql。如果表更改了,那么使用這個表的所有緩沖查詢將不再有效,查詢緩存值的相關(guān)條目被清空。更改指的是表中任何數(shù)據(jù)或是結(jié)構(gòu)的改變,包括INSERT、UPDATE、DELETE、TRUNCATE、ALTER TABLE、DROP TABLE或DROP DATABASE等,也包括那些映射到改變了的表的使用MERGE表的查詢。顯然,這對于頻繁更新的表,查詢緩存是不適合的,而對于一些不常改變數(shù)據(jù)且有大量相同sql查詢的表,查詢緩存會節(jié)約很大的性能。
查詢必須是完全相同的(逐字節(jié)相同)才能夠被認(rèn)為是相同的。另外,同樣的查詢字符串由于其它原因可能認(rèn)為是不同的。使用不同的數(shù)據(jù)庫、不同的協(xié)議版本或者不同 默認(rèn)字符集的查詢被認(rèn)為是不同的查詢并且分別進(jìn)行緩存。
下面sql查詢緩存認(rèn)為是不同的:
SELECT * FROM tbl_name
Select * from tbl_name
查詢緩存相關(guān)參數(shù)
mysql> SHOW VARIABLES LIKE ‘%query_cache%’;
+——————————+———+
| Variable_name | Value |
+——————————+———+
| have_query_cache | YES | –查詢緩存是否可用
| query_cache_limit | 1048576 | –可緩存具體查詢結(jié)果的***值
| query_cache_min_res_unit | 4096 |
| query_cache_size | 599040 | –查詢緩存的大小
| query_cache_type | ON | –阻止或是支持查詢緩存
| query_cache_wlock_invalidate | OFF |
+——————————+———+
【編輯推薦】