以下查询是否使用全表扫描?
如果是这样,有没有办法避免全表扫描?
SELECT a.title,
COUNT(*) AS `count`
FROM b
JOIN a ON a.id = b.a_id
GROUP BY b.a_id
请注意,存在以下索引:
a PRIMARY id
b PRIMARY c_id THEN a_id
b INDEX a_id
以下是解释结果:
id select_type table type possible_keys key ref rows extra
--------------------------------------------------------------------------------------
1 SIMPLE b index a_id a_id NULL 7 Using index
1 SIMPLE a eq_ref PRIMARY PRIMARY dev.b.a_id 1
答案 0 :(得分:3)
解释输出很明显,它在每个阶段都使用索引。 type
列下的“全部”表示全表扫描。这看起来它将使用索引来准确访问您需要数据的那些记录。 (计数也仅使用索引完成。)有关解释EXPLAIN输出的详细信息,请参阅here。