内部连接与笛卡尔积的性能

时间:2013-02-01 10:59:10

标签: sql join db2

  

可能重复:
  Explicit vs implicit SQL joins

我想知道

的性能差异
select * from A,B,C where A.x = B.y and B.y = C.z

select * from A INNER JOIN B on A.x = B.y INNER JOIN C on B.y = C.z

基本上我想知道内连接是否比笛卡尔产品表现更好? 内部连接是内部进行的笛卡尔积?

1 个答案:

答案 0 :(得分:2)

所有这两个操作中的第一个用于两个不同的目的,而Cartesian Product通过将每个行从一个表连接到另一个表中的每一行来提供结果。而内连接(有时称为简单连接)是一个 连接两个或多个表,只返回满足连接条件的那些行。
现在来到你所写的内容:
在笛卡儿积的情况下首先创建一个由A,B,C组成的表,然后在给出条件的基础上得到结果。但正如你所看到的那样,这是一个繁重的过程
另一方面,内部联接只选择那些真正满足给定条件的结果。这是实现最终结果的更好的解决方案。
第一个是滥用SQL语言。