结论:
1)从测试结果看,如果in和or所在列有索引或者主键的话,or和in没啥差别,执行计划和执行时间都几乎一样。二者平手
2) 如果in和or所在列没有索引的话,性能差别就很大了。IN 胜出!
在没有索引的情况下,随着in或者or后面的数据量越多,in的效率不会有太大的下降,但是or会随着记录越多的话性能下降非常厉害,
从第三中测试情况中可以很明显地看出了,基本上是指数级增长。
总结:
因此在给in和or的效率下定义的时候,应该再加上一个条件,就是所在的列是否有索引或者是否是主键。如果有索引或者主键性能没啥差别,如果没有索引,性能差别不是一点点!
http://blog.chinaunix.net/uid-20639775-id-3416737.html