为了账号安全,请及时绑定邮箱和手机立即绑定

SQL JOIN vs IN性能?

SQL JOIN vs IN性能?

开心每一天1111 2019-07-23 19:28:09
SQL JOIN vs IN性能?我有一个案例,使用JOIN或IN将给我正确的结果......通常有更好的性能,为什么?它取决于您运行的数据库服务器多少钱?(仅供参考我使用的是MSSQL)
查看完整描述

3 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

一般来说,INJOIN不同的查询,可以产生不同的结果。

SELECT  a.*FROM    aJOIN    bON      a.col = b.col

是不一样的

SELECT  a.*FROM    aWHERE   col IN
        (
        SELECT  col        FROM    b        )

,除非b.col是独一无二的。

但是,这是第一个查询的同义词:

SELECT  a.*FROM    aJOIN    (
        SELECT  DISTINCT col        FROM    b        )ON      b.col = a.col

如果加入列是UNIQUE并标记为这样,则这两个查询都会生成相同的计划SQL Server

如果不是,那么INJOIN开快DISTINCT

有关性能详情,请参阅我的博客中的这篇文章


查看完整回答
反对 回复 2019-07-23
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

有趣的是你提到了,我在这个主题上写了一篇博文。

请参阅Oracle vs MySQL与SQL Server:聚合与联接

简短的回答:你必须测试它,个人数据库变化很大。


查看完整回答
反对 回复 2019-07-23
?
动漫人物

TA贡献1815条经验 获得超10个赞

关于逻辑差异的一个有趣的写法:SQL Server:JOIN vs IN vs EXISTS - 逻辑差异

我很确定假设关系和索引被维护,Join将整体表现更好(更多的努力用于处理该操作然后其他操作)。如果从概念上考虑它,那么它是2个查询和1个查询之间的区别。

您需要将其连接到查询分析器并尝试它并查看差异。另请查看查询执行计划并尝试最小化步骤。


查看完整回答
反对 回复 2019-07-23
  • 3 回答
  • 0 关注
  • 1067 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信