Sue*_* Su 5 sql t-sql sql-server
我有2个表(table1 table2),table2大于table1.
脚本1:
SELECT t1.A, t2.B
FROM table1 AS t1
JOIN table2 AS t2 ON t1.PK = t2.FK
Run Code Online (Sandbox Code Playgroud)
脚本2:
SELECT t1.A, t2.B
FROM table2 AS t2
JOIN table1 AS t1 ON t1.PK = t2.FK
Run Code Online (Sandbox Code Playgroud)
性能脚本#1是否优于脚本#2?
您正在使用INNER JOIN所以答案是否定的。
由于联接类型,这将产生完全相同的数据量,并且您在两个查询中通过相同的关系进行联接,因此它们基本上是相同的。
如果您使用LEFT JOIN,情况会有所不同,因为在左连接中,保留主表(左)中的所有数据,以及详细表(右)中的所有匹配数据。
因此,如果您使用左连接,并将较大的表放在左侧,那么查询将产生更多数据,并且可能会比将较大的表放在右侧更慢。