MySQL的執行計劃指的是MySQL優化器確定的一個SQL語句執行的具體步驟,即MySQL如何讀取數據和處理數據的過程。執行計劃結果集則是執行計劃中每一個步驟的詳細信息。
EXPLAIN SELECT a.*, b.* FROM table1 a JOIN table2 b ON a.id=b.id WHERE a.id=1;
上述SQL語句通過EXPLAIN關鍵字可以查看執行計劃結果集。執行計劃結果集包含以下幾個部分:
- id:每一個操作(如表掃描、索引掃描、排序等)都會有一個唯一的標識號
- select_type:表示查詢的類型,如SIMPLE(簡單查詢)、PRIMARY(主查詢)等
- table:表示MySQL要訪問的表名
- partitions:表示MySQL要訪問的分區名
- type:表示查詢的連接類型,如ALL(全表掃描)、INDEX(索引掃描)等
- possible_keys:表示MySQL可以使用的索引
- key:表示MySQL實際使用的索引
- key_len:表示MySQL使用的索引長度
- ref:表示MySQL使用的索引列
- rows:表示MySQL要掃描的行數
- filtered:表示MySQL讀取的數據比例
- Extra:表示MySQL執行計劃中的其他信息,如Using filesort、Using temporary等。