@StasM извините, но не совсем уверен. Поведение также может отличаться в зависимости от версии MySQL.
ет наэтот вопрос SQLЯ столкнулся с утверждением, что фиксированное значениеIN()
оператор гораздо медленнее, чемINNER JOIN
с тем же содержанием, что лучше создать временную таблицу для значений и присоединиться к ним. Верно ли это (в общем, с MySQL, любым другим SQL-движком) и если да, то почему? Наглядно,IN
должно быть быстрее - вы сравниваете потенциальное совпадение с фиксированным набором значений, которые уже находятся в памяти и в нужном формате, в то время как с JOIN вам придется просматривать индексы, потенциально загружать данные с диска и выполнять другие операции это может быть не нужно с IN. Я что-то упустил?
Обратите внимание, что в отличие отэтот вопрос и это много дубликатов, я говорю оIN()
зафиксировав множество значений, а не подзапрос.