Мне нужно выбрать все записи из таблицы, содержащей идентификаторы, которые не «проверены» в четырех других таблицах. Вот мой запрос, который работает:Ошибка MySQL при выборе записей с идентификатором, отсутствующим в 4 других таблицах
select id, idDate, idInfo, idChecked from aTable
where id not in (select id from aSimilarTable1 where idChecked is not null)
and id not in (select id from aSimilarTable2 where idChecked is not null)
and id not in (select id from aSimilarTable3 where idChecked is not null)
and id not in (select id from aSimilarTable4 where idChecked is not null)
таблицы растут со временем, и теперь этот запрос занимает очень много времени для запуска (несколько минут, в лучшем случае). Размер таблиц являются следующие:
ATable - 1000 записей
aSimilarTable1, 2, 3, 4 - 50000 записей
Я буду работать на уменьшение размера таблиц. Однако существует ли более эффективный способ сделать вышеуказанный запрос?
--CLARIFICATION--
Не все идентификаторы из ATable может присутствовать в aSimilarTable1,2,3 или 4. Ищу идентификаторы в ATable, которые либо не присутствует в любом aSimilarTable, или если они присутствуют, не «проверены».
--UPDATE--
Объяснить план запроса:
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY aTable ALL null null null null 796 Using where
5 DEPENDENT SUBQUERY aSimilarTable4 ALL null null null null 21217 Using where
4 DEPENDENT SUBQUERY aSimilarTable3 ALL null null null null 59077 Using where
3 DEPENDENT SUBQUERY aSimilarTable2 ALL null null null null 22936 Using where
2 DEPENDENT SUBQUERY aSimilarTable1 ALL null null null null 49734 Using where
Каковы структуры таблиц? Индексы? Мощность? Где наш план eplain? – symcbean
@symcbean спасибо за комментарий - приложил план объяснения, поймите, какая мощность концептуально, но как я его количественно оцениваю? – MNM