IN 和 OR 的 SQL 性能问题

标签 sql

假设有一个 sql,并且在该 SP 的某些部分,有一个 WHERE 子句查找两个 ID;

... 身份在哪里 (123,1245)

而不是使用 IN ,如果我使用 OR;

我会得到什么或失去什么。还是两者相等?

最佳答案

有一个 excellent article 讨论类似的问题(NOT IN vs. EXISTS vs. LEFT JOIN)。基本上,它表明它们非常相似,并且不同的优化器可以很好地处理这些问题。

我希望优化器处理您提到的两个替代方案会导致类似的执行计划。如果有差异,请查看 EXPLAIN PLAN。

关于IN 和 OR 的 SQL 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1700903/

相关文章:

mysql - 选择特定字段的值超过同一字段最大值一半的行

sql - 在Redshift中创建较大的VARCHAR值是否存在弊端?

sql - 在 View 中动态更新

java - 为什么我只能从表中获取一条记录?

sql - 通过加入 CTE 进行插入不会产生随机结果

具有属性优先级的sql查询

MySQL Order By 和 Limit 1 子查询返回最新记录

sql - PostgreSQL:变量字段中的 'Collating' 值变为单个结果

javascript - 在插入数据库之前获取 UID 主键

php - 如果不在另一个查询中,请选择 ROW