В чём разница UNION и UNION ALL?

Ответ

UNION — объединяет результаты ДВУХ SELECT, убирает дубликаты. UNION ALL — то же, но БЕЗ удаления дубликатов. UNION ALL быстрее (не нужно сортировать для дедупликации). Если знаешь, что дублей не будет — всегда UNION ALL.

Разбор: UNION объединяет результаты SELECT и удаляет дубликаты, для чего требуется дедупликация (обычно сортировка/хеширование), поэтому он медленнее. UNION ALL просто склеивает наборы без удаления дублей и работает быстрее. Ловушки — поменять местами, кто удаляет дубликаты, приписать UNION большую скорость или подменить смысл операции на JOIN-соединение по строкам.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться