使用IN或OR进行mysql优化

时间:2010-08-18 21:00:26

标签: optimization mysql mysqli

我有一组需要在mysql中进行比较的大值。

我可以知道哪个更快? 例如:

Opt 1:
SELECT * FROM table WHERE v = 1 or v = 2 or v = 3 or v = 4 or... v = 100

Opt 2: 
SELECT * FROM table WHERE v IN (1,2,3,4,5,6,7,8,...,100)

我可以知道哪个选项对于大值更快?有没有更好的解决方案?谢谢。

3 个答案:

答案 0 :(得分:2)

这些都是连续的数字吗?然后我会用

SELECT * FROM table WHERE v BETWEEN 1 AND 100

答案 1 :(得分:1)

假设数字不连续,首选IN子句有两个原因:

  1. 更易阅读
  2. 优化运行速度比OR语句快。

答案 2 :(得分:0)

当我在学习数据库时,我的导师告诉我他们实际上归结为同样的事情。