2010-01-20 62 views
4

我在想,如果'正常'內部連接導致MySQL查詢中執行性能更高,而不是簡單查詢,那麼列出所有表,然後將它們與'和t1.t2id = t2一起加入。 id'等。MySQL連接性能與相關查詢

+0

對於參考任何其他人遇到這樣的道路,就像我做的... http://stackoverflow.com/questions/1018822/inner-join-on-vs-where-clause提供了大量的細節差異和好處。 – JeopardyTempest 2016-07-28 10:10:40

回答

6

執行計劃和運行時相同。 一個被稱爲ANSI風格(INNER JOIN,LEFT,RIGHT)另一個被稱爲Theta風格。

這兩個查詢是在各方面都等同於MySQL服務器

SELECT * FROM A INNER JOIN B ON A.ID = B.ID; 

SELECT * FROM A, B WHERE A.ID = B.ID; 

您可以通過鍵入解釋兩種查詢前,返回應該是相同的結果進行測試。

+0

@yada我會對更多信息感興趣。我猜他們是一樣的,因爲mysql的優化? – corymathews 2010-01-20 15:02:19

+1

它只是風格上的差異。就像有兩種方式在SQL中進行註釋 - 或/ * * /一樣。 搜索谷歌的Theta與ANSI SQL風格。 http://www.86db1.com/sql-join-syntax-theta-vs-ansi – Yada 2010-01-20 15:39:48

+1

FWIW,兩種語法形式在ANSI SQL標準中均受支持。 – 2010-01-20 16:41:56