MySQL OR与IN性能

MySQL OR与IN性能

我想知道在性能方面是否存在以下方面的差异

SELECT ... FROM ... WHERE someFIELD IN(1,2,3,4)SELECT ... FROM ... WHERE someFIELD between  0 AND 5SELECT ... FROM ... 
WHERE someFIELD = 1 OR someFIELD = 2 OR someFIELD = 3 ...

或者MySQL会以编译器优化代码的方式优化SQL吗?

编辑:更改ANDOR是因为评论中所述的原因。


慕标5832272
浏览 1623回答 3
3回答

慕田峪9158850

返回结果的总数为10000次中的7264次。SELECT * FROM item WHERE id = 1 OR id = 2 ... id = 10000这个查询0.1239秒数SELECT * FROM item WHERE id IN (1,2,3,...10000)这个查询0.0433秒数IN比OR

慕容708150

我认为两者之间的距离会更快,因为它应该转换为:Field&nbsp;>=&nbsp;0&nbsp;AND&nbsp;Field&nbsp;<=&nbsp;5我的理解是,IN将被转换成一组OR语句。IN的价值在于易用性。(节省了多次输入每个列名的次数,并且使用现有逻辑更容易-您不必担心和/或优先级,因为IN是一条语句。使用一组OR语句,您必须确保用圆括号包围它们,以确保将它们作为一个条件进行计算。)你的问题唯一真正的答案是分析查询..然后你就会知道什么在你的特殊情况下最有效。
打开App,查看更多内容
随时随地看视频慕课网APP