判斷通過二級索引查詢是否存在回表操作
在給定的查詢中,使用了二級索引 idx_track_source_id_created_at_len_parse_result_list。根據 EXPLaiN 輸出的信息,可以判斷是否存在回表操作:
- Extra: using where; Using index; Using temporary; Using filesort
根據 Extra 字段的提示,可以得出以下結論:
- Using Index:表示使用了二級索引進行查詢,無需回表。
- Using where:表示存在滿足 WHERE 條件的過濾,需要根據二級索引查找滿足條件的數據,然后再進行回表查詢。
因此,該查詢確實存在回表操作。這是因為查詢需要聚合每個 track_source_id 和日期的總計數,這意味著需要遍歷整個二級索引,并對滿足條件的數據進行計數。
判斷依據
可以通過 EXPLAIN 輸出中的 Extra 字段判斷是否存在回表操作:
- Using Index && Using where:表示需要回表查詢。
- Using Index:表示索引覆蓋了查詢所需的所有字段,無需回表。
補充說明
使用二級索引查詢是否會回表取決于以下因素:
因此,在設計索引時,考慮查詢模式并創建涵蓋常見查詢所需字段的索引非常重要。