问答详情
源自:2-4 [SQL Server基础]where 关键字

关于where语句提问

where color='white' or color='black'这条语句和where color in ('white','black')的区别?

提问者:慕粉2015562750 2016-11-01 11:41

个回答

  • ericguang
    2016-11-01 15:31:06
    已采纳

    执行效率会有差别

    如果in和or所在列有索引或者主键的话,or和in没啥差别,执行计划和执行时间都几乎一样。
    如果in和or所在列没有索引的话,性能差别就很大了。在没有索引的情况下,随着in或者or后面的数据量越多,in的效率不会有太大的下降,但是or会随着记录越多的话性能下降非常厉害。or的效率为O(n),而in的效率为O(logn), 当n越大的时候效率相差越明显。
    转载:  http://blog.chinaunix.net/uid-20639775-id-3416737.html