mysql中or和in的效率问题
2017-05-18 15:44
218 查看
mysql中or和in的效率问题
结论:
1)从测试结果看,如果in和or所在列有索引或者主键的话,or和in没啥差别,执行计划和执行时间都几乎一样。二者平手
2) 如果in和or所在列没有索引的话,性能差别就很大了。IN 胜出!
在没有索引的情况下,随着in或者or后面的数据量越多,in的效率不会有太大的下降,但是or会随着记录越多的话性能下降非常厉害,
从第三中测试情况中可以很明显地看出了,基本上是指数级增长。
总结:
因此在给in和or的效率下定义的时候,应该再加上一个条件,就是所在的列是否有索引或者是否是主键。如果有索引或者主键性能没啥差别,如果没有索引,性能差别不是一点点!
http://blog.chinaunix.net/uid-20639775-id-3416737.html
结论:
1)从测试结果看,如果in和or所在列有索引或者主键的话,or和in没啥差别,执行计划和执行时间都几乎一样。二者平手
2) 如果in和or所在列没有索引的话,性能差别就很大了。IN 胜出!
在没有索引的情况下,随着in或者or后面的数据量越多,in的效率不会有太大的下降,但是or会随着记录越多的话性能下降非常厉害,
从第三中测试情况中可以很明显地看出了,基本上是指数级增长。
总结:
因此在给in和or的效率下定义的时候,应该再加上一个条件,就是所在的列是否有索引或者是否是主键。如果有索引或者主键性能没啥差别,如果没有索引,性能差别不是一点点!
http://blog.chinaunix.net/uid-20639775-id-3416737.html
相关文章推荐
- mysql中or和in的效率问题
- mysql中or和in的效率问题
- mysql中or和in的效率问题
- mysql中or和in的效率问题
- mysql中or和in,in和exists的效率问题
- mysql中or和in的效率问题
- mysql中or和in的效率问题
- mysql中or和in的效率问题
- mysql中or和in,in和exists的效率问题
- mysql中or和in的效率问题
- mysql中or和in的效率问题
- mySql---or和in的效率问题(和<=、>=、between之间的关系)
- mysql中or和in的效率问题
- mysqli使用localhost问题 Warning: mysqli::mysqli(): (HY000/2002): No such file or directory in /...
- mysqli使用localhost问题 Warning: mysqli::mysqli(): (HY000/2002): No such file or directory in /mnt/www/
- mysql in的效率问题
- MySQL中使用or、in与union all在查询命令下的效率对比
- mysql 实战 or、in与union all 的查询效率
- mysql多表关联更新和in效率问题
- mysql not in 和 left join 效率问题记录