代码之家  ›  专栏  ›  技术社区  ›  Mutation Person

内部联接能提供比现有的更好的性能吗

  •  48
  • Mutation Person  · 技术社区  · 15 年前

    我一直在调查对一系列程序进行性能改进的情况,最近一位同事提到,他在使用内部联接代替现有联接时,已经取得了显著的性能改进。

    作为调查的一部分,我想我会在这里问这个问题。

    所以:

    • 内部联接能提供比现有的更好的性能吗?
    • 会发生什么情况?
    • 如何设置测试用例作为证据?
    • 您是否有其他文档的有用链接?

    事实上,人们在这个问题上所能带来的任何其他经验。

    如果有任何答案可以专门解决这个问题而不建议其他可能的性能改进,我将不胜感激。我们已经取得了相当大的成功,我只是对这个项目感兴趣。

    任何帮助都将不胜感激。

    2 回复  |  直到 14 年前
        1
  •  48
  •   Quassnoi    14 年前

    一般来说, INNER JOIN EXISTS 是不同的东西。

    前者返回两个表中的重复项和列,后者返回一个记录,作为谓词,只返回一个表中的记录。

    如果在 UNIQUE 列,它们表现出相同的性能。

    如果在记录集上使用 DISTINCT 应用(消除重复项) 存在 通常更快。

    IN 存在 子句(具有等联接关联)通常使用以下其中一种 SEMI JOIN 通常比 独特的 在其中一张桌子上。

    在我的博客中看到这篇文章:

        2
  •  9
  •   gbn    15 年前

    也许,也许不是。

    • 同样的计划很可能会产生
    • 内部联接可能需要一个distinct才能获得相同的输出
    • 存在处理为空