增加JOIN语句中的字段数是否会增加/降低执行速度?

时间:2016-06-14 16:06:15

标签: sql

我有两个包含350万行数据的表。我在两者之间创建左连接以创建新视图。

代码1:

SELECT t1.c1,t1.c2,t2.c3,t2.c4
from table1 as t1 
   left join table2 as t2
   on t1.Location=t2.Location and t1.OrderNumber=t2.OrderNumber and t1.Customer=t2.Customer

代码2:

SELECT t1.c1,t1.c2,t2.c3,t2.c4
from table1 as t1 
   left join table2 as t2
   on t1.OrderNumber=t2.OrderNumber

两个代码片段都给出了相同的预期结果,因为表2中的“订单号”字段只有唯一值。

与仅有一个相比,为JOIN提供更多字段会更好吗?

1 个答案:

答案 0 :(得分:0)

SELECT t1.c1,t1.c2,t2.c3,t2.c4
from table1 as t1 
left join table2 as t2
       on t1.Location    = t2.Location 
      and t1.OrderNumber = t2.OrderNumber 
      and t1.Customer    = t2.Customer

如果OrderNumber是任一表的PK,那么添加其他字段不会改变结果,除非另一方没有索引,否则不会改善性能。

如果表2中的订单号字段仅具有唯一值,则不会更改查询。如果它是PK或具有唯一约束/索引,那么除非连接的Table2.OrderNumber未被索引,否则添加字段将无济于事。