mysql中or和in的效率问题

本文探讨了MySQL中IN和OR操作符的性能差异。测试表明,在存在索引的情况下两者性能相当;而在无索引情况下,IN明显优于OR,尤其在处理大量数据时优势更为显著。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值