sql - 联合还是联合所有人,这是个问题

标签 sql performance union-all

我有两个疑问,我是 UNION在一起,这样我就知道两个查询之间不会有重复的元素。因此,UNIONUNION ALL将产生相同的结果。

我应该使用哪一种?

最佳答案

您应该使用与您正在寻找的意图相匹配的那个。如果您想确保没有重复项,请使用 UNION ,否则使用 UNION ALL .仅仅因为您的数据现在会产生相同的结果并不意味着它总是会产生。

也就是说,UNION ALL在任何健全的数据库实现上都会更快,请参阅下面的文章以获取示例。但通常情况下,它们是相同的,除了 UNION执行一个额外的步骤来删除相同的行(正如人们所期望的那样),并且它可能倾向于支配执行时间。

  • SQL Server article
  • Oracle article
  • MySQL article
  • DB2 documentation
  • 关于sql - 联合还是联合所有人,这是个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3909563/

    相关文章:

    php - 在单个查询中选择的安全行数

    mysql - 我如何计算这个 mysql UNION 查询

    r - 如何在 R 中合并 2 列

    php - 有没有办法将数组元素插入mysql数据库

    java - HashMap 内存比直接计算答案慢

    java - 类层次结构对java性能有多大影响?

    sql - 递归WITH子句必须在UNION ALL分支之一中直接引用自身

    mysql - 如何编写 MySQL 查询来查找外键实体是否存在?

    sql - 如何确定行在SQL结果集中的位置?

    mysql - 以元音开头和结尾的 SQL 字符串 - 寻找快捷方式