基於《高性能 MySQL》第 4 章核心觀點,結合實戰經驗整理:為什麼要優化查詢、訪問類型層級、三種 WHERE 應用方式、重構策略、關聯查詢執行機制、排序優化、子查詢陷阱、最值優化、GROUP BY/DISTINCT、LIMIT 分頁優化十大專題。
EXPLAIN 中 rows 列,核心衡量指標ALL 全表掃描 → index 索引掃描 → range 范圍 → ref 索引查找 → eq_ref 唯一索引 → const 常數 → system 系統表Using index condition/ICP)Using index,從索引直接返回,無需回表Using where,讀取完整行後再過濾,開銷最大filesort:內存排序(sort_buffer_size)或磁盤臨時文件排序ORDER BY 列全屬驅動表 → 驅動表階段排序(Using filesort)Using temporary; Using filesort)LIMIT 推送優化:不再全量排序IN (SELECT ...) 最差:外層表掃描 → 逐行執行子查詢JOIN 或 EXISTSGROUP_CONCAT 構造 IN 列表:WHERE id IN (SELECT GROUP_CONCAT(id) FROM ...)EXISTS 避免 DISTINCT 去重開銷,有時比 JOIN 更快