2010-04-20

MySQL 在做 JOIN 時對索引關連的小發現

當兩個 Table 在做 JOIN 時
如果在對應上有其他判斷式
便不會使用索引關連

SELECT * FROM
a
INNER JOIN
b
ON a.id=b.id &&(b.num=a.num || b.num=0)


當我將判斷式移到 WHERE 上去
在 ON 上留下有索引的鍵值對應
這樣的效率居然比原本的快兩倍

SELECT * FROM
a
INNER JOIN
b
ON a.id=b.id
WHERE b.num=a.num || b.num=0


結論就是:
在設定關連邏輯時,最好使用單純的鍵值對應

0 回應: