【问题标题】:Is there any performance difference between a SQL "IN" statement versus using "OR"?SQL“IN”语句与使用“OR”之间是否存在性能差异?
【发布时间】:2010-04-29 19:43:50
【问题描述】:

我想我会问知识渊博的 StackOverflow 社区一个我今天想到的问题,但我似乎找不到答案。

“IN”或使用“OR”之间是否有任何性能差异或优势?

即。是

SELECT type FROM types WHERE typecat IN ('abc', 'def')

优于

SELECT type FROM types WHERE typecat = 'abc' OR typecat = 'def'

添加:使用 SQL Server 2008

【问题讨论】:

  • 什么服务器? SQL Server、MySQL、Postgres、Oracle...?
  • 我曾经问过这个问题:stackoverflow.com/questions/2343242/…
  • 抱歉,使用 SQL Server 2008。
  • 感谢 Froadie,有一些混合的 cmets,但我相信优化器会根据大多数响应创建相同的查询。

标签: sql sql-server-2008 syntax


【解决方案1】:

这完全取决于您使用的 SQL 产品,但您没有说明。我经常使用的一个 RDBMS 不能使用 OR 版本的索引。

【讨论】:

  • 想透露一下 RDBMS 的名称吗?
  • R:Base(过去的爆炸)。
  • 抱歉,使用 SQL Server 2008。
【解决方案2】:

如果我没记错的话,SQL Server 会将您拥有的 IN 语句转换为 OR 语句。

【讨论】:

    【解决方案3】:

    不,没有性能差异。优化器会处理它。

    【讨论】:

      猜你喜欢
      • 2011-03-20
      • 2021-02-23
      • 1970-01-01
      • 2021-04-29
      • 2014-11-24
      • 2019-09-21
      • 1970-01-01
      • 2010-12-20
      • 1970-01-01
      相关资源
      最近更新 更多