| 欄位 | 含義 | 關鍵判讀 |
|---|---|---|
id | SELECT 識別符 | 數字越大優先執行;相同則按順序;NULL 為衍生表/UNION 結果 |
select_type | 查詢類型 | SIMPLE、PRIMARY、SUBQUERY、DERIVED、UNION、UNION RESULT |
table | 訪問的表 | 實表、衍生表 |
partitions | 匹配的分區 | 分區表才顯示 |
type | **訪問類型(核心)** | system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL |
possible_keys | 可能用到的索引 | 為 NULL 表示無索引可用,需檢查 WHERE/ON 條件列 |
key | 實際使用的索引 | 為 NULL 表示全表掃描;可用 USE INDEX/IGNORE INDEX 強制/忽略 |
key_len | 索引長度(位元組) | 越短越好;可推斷聯合索引用了幾列 |
ref | 索引比較值來源 | const(常數)、func、列名、NULL |
rows | 預估掃描行數 | 越小越好;結合 filtered 估算實際返回行 |
filtered | 按條件過濾後剩餘百分比 | 100 表示無額外過濾;低值暗示索引選擇性差 |
Extra | 額外資訊 | 見下表 |
| 值 | 含義 | 優化方向 |
|---|---|---|
Using index | 覆蓋索引,僅讀索引不回表 | 優,設計覆蓋索引 |
Using where | Server 層過濾 | 常見,若型別=ALL 需加索引 |
Using temporary | 需建立臨時表(ORDER BY/GROUP BY 不同列) | 優化索引順序、避免文件排序 |
Using filesort | 需外部排序 | 加索引匹配 ORDER BY、增大 sort_buffer_size |
Using index condition | ICP (Index Condition Pushdown) | 優,下推條件到存儲引擎 |
Using join buffer | Join 使用緩衝區 | 加駆動表索引、調整 join_buffer_size |
Impossible WHERE | WHERE 條件永假 | 檢查 SQL 邏輯 |
Distinct | 找到第一匹配行即停止 | 優 |
system:表僅一行(系統表)const:主鍵/唯一索引等值查詢,最多一行eq_ref:唯一/主鍵索引 Join,每行匹配一行ref:非唯一索引等值查詢/Joinrange:索引範圍掃描(>, <, >=, <=, BETWEEN, IN)index:全索引掃描ALL:全表掃描(最差)type 至少達到 ref 或 range。key 不為 NULL,key_len 合理。rows × filtered/100 ≈ 實際返回行,數量級可接受。Extra 無 Using temporary/Using filesort,有 Using index/Using index condition。