where color='white' or color='black'这条语句和where color in ('white','black')的区别?
执行效率会有差别
如果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