通過 EXPLaiN 判斷查詢是否回表
要判斷查詢是否存在回表操作,可以使用 EXPLAIN 分析查詢計劃。以下是如何通過 EXPLAIN 輸出的 Extra 字段判斷:
- using Index:表示出現索引覆蓋,查詢所需的字段都在索引中,不需要回表。
- Using Index Condition:表示使用了索引查找,但需要過濾,因為要過濾的字段不在索引中。不回表。
- Using Index & Using where:表示索引中可以找到select的數據,但需要根據where條件過濾。不回表。
- Using where:在使用到了索引的情況下,Extra是Using where,表示回表查詢數據。
- 主鍵查詢:不回表,因為要找的字段從聚簇索引上直接查找,不需要回表。但是 Extra 無法反映這一點。
結合你的問題,EXPLAIN 輸出顯示:Using temporary; Using filesort,這意味著使用了臨時表和文件排序,需要回表。因此,該查詢存在回表操作。