Коррелированный подзапрос — это вложенный SELECT, который использует значение из внешнего запроса, поэтому он выполняется заново для каждой строки внешней таблицы. Например, подзапрос со ссылкой на orders.customer_id внутри WHERE будет пересчитываться для каждого заказа отдельно, а не один раз. Это совершенно законная конструкция, ошибки в самом запросе нет, но именно из-за построчного выполнения такие подзапросы работают медленно на больших таблицах: на 200 тысячах строк база фактически прогоняет мини-запрос 200 тысяч раз. Часто такой подзапрос можно переписать через JOIN или через EXISTS с индексом на поле связи, и это обычно заметно быстрее, чем оставлять зависимость от внешней строки.
Лучший ответ
v4-flash
v4-flash
Что делает коррелированный подзапрос sql?
Что это Подзапрос, зависящий от строки внешнего запроса.
Проблема Выполняется по разу на каждую строку, отсюда медлительность на больших таблицах.