判斷通過(guò)二級(jí)索引查詢是否存在回表操作
在給定的查詢中,使用了二級(jí)索引 idx_track_source_id_created_at_len_parse_result_list。根據(jù) EXPLaiN 輸出的信息,可以判斷是否存在回表操作:
根據(jù) Extra 字段的提示,可以得出以下結(jié)論:
- Using Index:表示使用了二級(jí)索引進(jìn)行查詢,無(wú)需回表。
- Using where:表示存在滿足 WHERE 條件的過(guò)濾,需要根據(jù)二級(jí)索引查找滿足條件的數(shù)據(jù),然后再進(jìn)行回表查詢。
因此,該查詢確實(shí)存在回表操作。這是因?yàn)椴樵冃枰酆厦總€(gè) track_source_id 和日期的總計(jì)數(shù),這意味著需要遍歷整個(gè)二級(jí)索引,并對(duì)滿足條件的數(shù)據(jù)進(jìn)行計(jì)數(shù)。
判斷依據(jù)
可以通過(guò) EXPLAIN 輸出中的 Extra 字段判斷是否存在回表操作:
- Using Index && Using where:表示需要回表查詢。
- Using Index:表示索引覆蓋了查詢所需的所有字段,無(wú)需回表。
補(bǔ)充說(shuō)明
使用二級(jí)索引查詢是否會(huì)回表取決于以下因素:
因此,在設(shè)計(jì)索引時(shí),考慮查詢模式并創(chuàng)建涵蓋常見(jiàn)查詢所需字段的索引非常重要。