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

SQL“ON”子句优化

  •  2
  • moo  · 技术社区  · 17 年前

    哪个查询运行得更快?

    SELECT * FROM topic_info
        LEFT JOIN topic_data ON topic_info.id = topic_data.id
    WHERE id = ?
    

    SELECT * FROM topic_info
        LEFT JOIN topic_data ON topic_data.id = topic_info.id
    WHERE id = ?
    

    5 回复  |  直到 17 年前
        1
  •  4
  •   Samantha Branham    17 年前

        2
  •  3
  •   Wayne    17 年前

    信息技术 可能 没关系,但一定要测试一下。

        3
  •  3
  •   John Sansom    17 年前

    其他的海报都是正确的,你用哪种方式表达加入并不重要。

    这是因为查询优化器将确定用于查询的最有效的方法,当然还有查询计划。无论join语句的顺序如何,都会发生这种情况。

    希望这能为您澄清问题,但请随时要求提供更多详细信息。

    干杯,约翰

        4
  •  2
  •   Learning    17 年前

    现代的dbs足够智能,因此在执行性能上没有任何差别。

        5
  •  2
  •   benlumley    17 年前

    因为它是一个左连接,如果其中一个表中有行而另一个表中没有链接记录,那么当该表位于join子句的右侧时,将无法检索这些行。

    编辑:我完全误解了-只是做了一些测试。Ta感谢评论家们对我的直言不讳。