【问题标题】:MySQL Embedded SELECTs vs. JOINsMySQL 嵌入式 SELECT 与 JOIN
【发布时间】:2010-01-25 09:47:48
【问题描述】:

两者之间是否有明显区别:

SELECT userid, username, userdept,
    (SELECT deptname FROM depts WHERE deptid=userdept) AS deptname
    FROM users

SELECT userid, username FROM users
    INNER JOIN depts ON depts.deptid=users.userdept

哪个更好?

【问题讨论】:

    标签: mysql query-performance


    【解决方案1】:

    您的第二个查询具有更好的性能。

    你可以看这个例子:http://www.codersrevolution.com/index.cfm/2008/7/31/MySQL-performance-INNER-JOIN-vs-subselect

    【讨论】:

      【解决方案2】:
      【解决方案3】:

      您也可以在此主题上查看many discussion in SO

      【讨论】:

        【解决方案4】:

        这两个查询不是同义词。

        如果您将INNER JOIN 替换为LEFT JOIN,它们将是同义词,但如果deptid 不是唯一的,则子查询可能会失败,而LEFT JOIN 将始终成功。

        如果depts.deptid 上有一个UNIQUE 索引(很可能是,因为该字段很可能是PRIMARY KEY),那么性能差异可以忽略不计。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-06-10
          • 1970-01-01
          • 1970-01-01
          • 2020-07-02
          • 1970-01-01
          • 1970-01-01
          • 2016-12-01
          相关资源
          最近更新 更多