2011-02-22 27 views
2

這兩者之間是否存在性能差異?MySQL:「內連接」性能:「哪裏」vs添加「on」

select * from tableA INNER JOIN tableB ON tableA.type = ? AND tableB.ref = tableA.id 
select * from tableA INNER JOIN tableB ON tableB.ref = tableA.id WHERE tableA.type = ? 
+0

可能重複[在MySQL查詢,爲什麼使用連接而不是在哪裏?](http://stackoverflow.com/questions/2241991/in-mysql-queries-why-use-join-instead-of-where) – 2011-02-22 17:23:00

回答

5

我猜他們會是一樣的,但你可以通過在他們兩個上運行EXPLAIN並查看實際的計劃來找到自己。

通常使用像SQL這樣的聲明性語言,您將無法找到如此簡單的銀色子彈優化。如果相對於另一個有顯着的性能優勢,那麼優化器可能會識別它並運行使用最有效技術的查詢計劃。