Средний
Что лучше использовать для проверки существования записей: IN или EXISTS?
В большинстве современных СУБД (особенно в PostgreSQL) EXISTS работает быстрее, чем IN, при работе с большими таблицами.
- IN сначала выполняет подзапрос целиком, собирает все значения в память, а затем сравнивает их с внешним запросом.
- EXISTS прекращает поиск (возвращает TRUE), как только находит первое совпадение в подзапросе. Ему не нужно сканировать всю таблицу.
💡 Практика: Если подзапрос возвращает 10 строк — разницы нет. Если 1 000 000 строк — используйте EXISTS.