代码之家  ›  专栏  ›  技术社区  ›  GSto

在MySQL中,in和several或子句之间是否存在性能差异?

  •  1
  • GSto  · 技术社区  · 14 年前

    以下两个查询之间是否存在性能差异:

    SELECT foo,bar FROM table WHERE id IN (1,2,3);
    

    SELECT foo,bar FROM table WHERE id = 1 OR id = 2 OR id = 3;
    

    在这样一个小例子中,我可以肯定两者之间的差别可以忽略不计,但是当有效ID的数量大得多时呢?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Mark Byers    14 年前

    优化器更有可能优化 WHERE id IN (1,2,3) id = 1 OR id = 2 OR id = 3 . 我也认为使用 IN 在这里更容易阅读。

    使用 其中id in(1,2,3) .

        2
  •  0
  •   Marc B    14 年前

    这是我在黑暗时代选修的comp.sci数据库课程的作业。结果发现,在测量范围内,两者之间的性能差异不大,但是 ... IN (...) 由于构造该查询所需的字符更少,因此版本确实会导致查询更小。