[英]MySQL Embedded SELECTs vs. JOINs
以下兩者之間是否存在明顯差異:
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
哪一個更好?
您的第二個查詢具有更好的性能
你可以看到這個例子: http : //www.codersrevolution.com/index.cfm/2008/7/31/MySQL-performance-INNER-JOIN-vs-subselect
這兩個查詢不是同義詞。
如果用LEFT JOIN
替換INNER JOIN
,它們將是同義詞,但如果deptid
不唯一則子查詢會失敗,而LEFT JOIN
將始終成功。
如果depts.deptid
上有一個UNIQUE
索引(最可能的是,因為這個字段很可能是一個PRIMARY KEY
),那么性能差異可以忽略不計。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.