INNER JOIN可以提供比EXISTS更好的性能

我一直在调查一系列程序的性能改进,最近有一位同事提到他在使用INNER JOIN代替EXISTS时取得了显着的性能提升。

作为调查的一部分,为什么这可能是我想我会问这里的问题。

所以:

  • INNER JOIN可以提供比EXISTS更好的性能吗?
  • 这会发生什么情况?
  • 我怎样才能build立一个testing用例作为certificate?
  • 你有进一步的文件有用的链接?

真的,任何其他的经验,人们可以带来这个问题。

如果有任何答案可以解决这个问题,而没有任何其他可能的性能改进的build议,我将不胜感激。 我们已经取得了一定程度的成功,而我只是对这个项目感兴趣。

任何帮助将非常感激。

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

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

如果您在UNIQUE列上进行内部UNIQUE ,它们会performance出相同的性能。

如果在应用DISTINCT的logging集上执行内部DISTINCT (以除去重复项), EXISTS通常会更快。

INEXISTS子句(等同联系)通常使用几个SEMI JOINalgorithm之一,这些algorithm通常比其中一个表上的DISTINCT更高效。

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

  • IN与JOIN与EXISTS

也许,也许不是。

  • 同样的计划将最有可能产生
  • INNER JOIN可能需要DISTINCT才能获得相同的输出
  • EXISTS处理NULL