2012-02-26 41 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子句允许通过的主数据集中排除。