- in 与 or 那个效率高
select * from table where column in (条件1,条件2)
select * from table where (column = 条件1 or column = 条件2)
or的效率高于in
总结:如果in和or所在列有索引或者主键的话,or和in没啥差别,执行计划和执行时间都几乎一样。如果in和or所在列没有索引的话,性能差别就很大了。在没有索引的情况下,随着in或者or后面的数据量越多,in的效率不会有太大的下降,但是or会随着记录越多的话性能下降非常厉害,从第三中测试情况中可以很明显地看出了,基本上是指数级增长。
SQL 优化
于 2022-10-27 13:47:33 首次发布