我正在使用 sqlite 3.8.2 ,我想计算该查询中的行:
SELECT artist
FROM media
GROUP BY artist
注意:该查询非常快,因为它在media_idx_14
列上使用了索引artist
所以我需要的查询是:
SELECT count (*)
FROM (
SELECT artist
FROM media
GROUP BY artist
)
问题在于此查询的执行速度不如预期的那么快。
以下是查询计划:
SCAN TABLE media USING INDEX media_idx_14
SCAN SUBQUERY 1
我的查询执行SCAN表,而所需的所有信息已经在索引中。
有没有办法改进我的查询以摆脱效率低下的表SCAN?
答案 0 :(得分:4)
我建议您尝试此查询:
SELECT COUNT(DISTINCT artist)
FROM media