Базы данных / SQL trainee
В чём разница UNION и UNION ALL?
Ответ
UNION — объединяет результаты ДВУХ SELECT, убирает дубликаты. UNION ALL — то же, но БЕЗ удаления дубликатов. UNION ALL быстрее (не нужно сортировать для дедупликации). Если знаешь, что дублей не будет — всегда UNION ALL.
Разбор: UNION объединяет результаты SELECT и удаляет дубликаты, для чего требуется дедупликация (обычно сортировка/хеширование), поэтому он медленнее. UNION ALL просто склеивает наборы без удаления дублей и работает быстрее. Ловушки — поменять местами, кто удаляет дубликаты, приписать UNION большую скорость или подменить смысл операции на JOIN-соединение по строкам.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.