Собственно, если сделать запрос
SELECT * FROM `a` WHERE `id` IN(1,2,3);
то используется index PRIMARY id, но если сделать
SELECT * FROM `a` WHERE `id` IN(SELECT sub_id FROM b WHERE id>2);
то индекс вообще не используется, даже при
SELECT * FROM `a` FORCE INDEX (PRIMARY) WHERE `id` IN(SELECT sub_id FROM b WHERE id>2);
EXPLAIN возвращает:
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY a ALL NULL NULL NULL NULL 16409490 Using where
2 DEPENDENT SUBQUERY b uid,id_domain_time_add,uid_2 id_domain_time_add 8 NULL 118 Using where
Почему при вложенном запросе mysql отказывается использовать индекс?