Query Cache 緩存 「查詢語句 → 結果集」 的映射。默認開啟。
| 參數 | 說明 | 默認值 |
|---|---|---|
query_cache_limit | 單條結果集最大緩存容量 | 1MB |
query_cache_min_res_unit | 每次分配最小記憶體塊 | - |
query_cache_size | 總緩存記憶體,1024 倍數 | 0(關閉) |
query_cache_type | 開關:0=OFF, 1=ON, 2=DEMAND | 1 |
query_cache_wlock_invalidate | 寫鎖時是否失效相關緩存 | 0 |
query_cache_type=1 時每個 SELECT 都查找緩存,寫入頻繁導致命中率低、碎片多、鎖競爭,反而拖慢整體。SHOW GLOBAL STATUS LIKE 'Qcache%'
Qcache_hits / (Qcache_hits + Qcache_inserts),80%+ 合格Qcache_lowmem_prunes 持續增長 → 碎片或記憶體不足Qcache_free_blocks 過多 → 碎片,執行 FLUSH QUERY CACHEquery_cache_size ≤ 256MBquery_cache_type=0)或用 DEMAND 模式配合 SQL_CACHE 顯式標記FLUSH QUERY CACHE 整理碎片Qcache_lowmem_prunes 與命中率,動態調整大小