Mysql union против нескольких запросов

Мне интересно узнать, лучше ли объединение, чем запуск нескольких запросов.

Если да, то могут ли времена, когда несколько запросов были бы более быстрыми или предпочтительными по другим причинам?

Ответ 1

Если вы используете UNION ALL и не сортируете результат, тогда производительность UNION должна быть более или менее такой же, как и производительность нескольких отдельных запросов, если запросы идентичны тем, которые вы объединяете вместе, Если вы сортируете данные, очевидно, что вы накладываете некоторые накладные расходы (хотя, вероятно, меньше, чем если бы вы отсортировали в нем свое приложение). Если вы не укажете ключевое слово ALL, MySQL выполнит дополнительную работу DISTINCT-ing ваших результатов. Опять же, это налагает дополнительные накладные расходы, хотя, вероятно, меньше, чем делать это самостоятельно.

Ответ 2

Вы спрашиваете, лучше ли это? - Я полагаю, вы имеете в виду "производительность"?

Если влияние скорости минимально, вам может потребоваться несколько запросов, чтобы ваш код стал более читаемым; вместо того, чтобы иметь дело с несколькими запросами, делая разные вещи, в одном объединении.

Зависит от прецедента, конечно. Но читаемый и понятный код может стоить в более крупном проекте в долгосрочной перспективе