Производительность профсоюза и союза

Мне нужно запустить инструкцию select в нескольких таблицах. Я уверен, что таблицы возвращают разные записи. Я все равно использую UNION ALL.

Лучше ли использовать UNION или UNION ALL в условиях производительности, когда я уверен, что таблицы возвращают разные записи?

Ответ 2

UNION ALL всегда быстрее, потому что UNION исключает дублированные записи

Ответ 3

UNION реализует внутренне два запроса. 1. SELECT, который вернет набор данных 2. DISTINCT. Любой, кто изучил базы данных базы данных, может легко понять, что предложение DISTINCT является чрезвычайно дорогостоящим с точки зрения обработки.

Если вы уверены, что результирующий набор данных не должен иметь уникальных строк, мы можем пропустить UNION и вместо этого использовать UNION ALL.

UNION ALL будет таким же, как UNION, за исключением того, что он не запускает DISTINCT внутренне экономящие нас дорогостоящие операции

Ответ 4

Лучше использовать UNION ALL, когда вы знаете, что хотите все строки результатов, независимо от того, знаете ли вы, что они будут отличаться или нет. UNION без "all" всегда будет выполнять "отличную проверку", независимо от того, что на самом деле есть.

Ответ 5

Почему UNION ALL быстрее? Потому что UNION должен сделать вид, чтобы удалить дубликаты. Если вам не нужно удалять дубликаты, тогда UNION ALL - лучший вариант, однако UNION имеет свою цель и должен использоваться, когда это необходимо.