要结合或结合所有人,那就是问题

Bil*_*eal 9 sql performance union-all

我有两个查询,我UNION已经知道两个查询之间不会有重复的元素.因此,UNIONUNION ALL会产生相同的结果.

我应该使用哪一个?

Dan*_*olo 23

您应该使用符合您要求的意图的那个.如果要确保没有重复使用UNION,否则请使用UNION ALL.仅仅因为您的数据现在会产生相同的结果并不意味着它总会如此.

也就是说,UNION ALL任何理智的数据库实现都会更快,请参阅下面的文章以获取示例.但通常情况下,它们是相同的,除了UNION执行额外的步骤以删除相同的行(正如人们可能预期的那样),并且它可能倾向于主导执行时间.

  • @Mark - 这不是胡扯,它回答了两个问题.问的主要问题是"我应该使用哪一个?" 答案是"使用符合你意图的那个".*暗示*问题是"哪一个会更快使用?",答案是"UNION ALL" (3认同)

Bra*_*adC 6

我看到你已经标记了这个问题的表现,所以我认为这是你的首要考虑因素.

UNION ALL绝对会超越,UNION因为SQL不必检查两组的重复.

除非您需要SQL来为您执行重复检查,否则请始终使用UNION ALL.