MySQL的執行計劃是優化器根據查詢語句生成的一份查詢計劃,用來指導MySQL在執行查詢時選擇最優的查詢方案。
EXPLAIN SELECT * FROM students WHERE age >20;
執行以上SQL語句,可以通過EXPLAIN關鍵字查看執行計劃。執行計劃包含多列信息,以下是一些比較常見的列:
- id:查詢的標識符,一次查詢中每個SELECT子句都有一個唯一的標識符
- select_type:查詢的類型,包括簡單查詢(SIMPLE)、聯合查詢(UNION)、子查詢(SUBQUERY)等
- table:表名
- partitions:用于存儲數據的分區
- type:訪問類型,包括全表掃描(ALL)、索引掃描(RANGE、REF、EQ_REF)等
- possible_keys:可能使用的索引
- key:實際使用的索引
- key_len:索引的長度
- ref:顯示與索引比較的列
- rows:所需掃描的行數
- Extra:其他信息,包括使用臨時表等
通常情況下,我們可以通過優化查詢語句或添加索引等方法來優化執行計劃,從而改善查詢性能。