2012-02-26 25 views
0

使用Mysql Server 5.5。mysql加入 - 流程如何工作?

可以說我有兩個叫做foo1和foo2的有如下因素列相同的表:

姓VARCHAR(20) IDNUM INT(20)

,我想加入這兩個表,其中IDNUM = 5

現在

,如果我用下面的代碼實現:

select * from foo1 
join foo2 on foo1.idnum=foo2.idum 
where foo1.idnum5; 

它首先連接表和O中的所有行那麼只需過濾idnum5所在的行並返回該行?

如果是的話我也許應該執行這樣說,這是真的:

select * from foo1 
join foo2 on foo2.idnum=5 
where foo1.idnum=5 

該實現更快的加入?有什麼區別嗎?

我想了解它是如何工作的,以瞭解這是否是一種優化我的連接查詢的方法。

有關該問題的任何信息將不勝感激。

謝謝!

回答

0

連接的流程只是爲了準備表格之間的關係以進行最終資格鑑定。 WHERE子句實際上啓動應用程序,將其中的記錄作爲PRIMARY取出,並希望利用索引優化WHERE部分中引用的任何表的有限記錄。

根據THAT結果應用連接(或左連接/右連接),如果在相應允許的THOSE記錄中找到,則從WHERE子句允許通過的主數據集中排除。