左连接和SQL子查询的性能差异

问题描述 投票:0回答:1

这个问题可能很微不足道,但仍然是这样的 SQL Server 查询有什么区别:

 SELECT t1.*, t2.Value
 FROM table1 t1
 LEFT JOIN table2 t2 ON t1.Id = t2.Id

 SELECT 
     t1.*, 
     (SELECT Value FROM table2 t2 WHERE t1.Id = t2.Id) 
 FROM table1 t1

首先从表演POV来看。

我看不到第二个选项适合的情况,因为正如我所看到的,对于 t1 中的每条记录,服务器应该针对 t2 调用单独的查询,我想在这里很难优化任何内容。

有人可以评论一下是否有任何情况下,带有子查询的第二个选项可能比添加新表来加入更可取

sql sql-server t-sql left-join sqlperformance
1个回答
0
投票

使用 JOIN 通常优于不使用 JOIN,原因如下:

  1. 可读性: JOIN 提供了一种清晰简洁的方式来表达之间的关系 表,使查询更具可读性。
  2. 性能:当您在 SQL 中使用 JOIN 时,数据库引擎通常可以利用索引来有效地查找和匹配表之间的行。索引是提供快速查找机制的数据结构,它们可以显着提高涉及连接的查询的性能。

您可以在sql中搜索索引以获取更多信息

  1. 可维护性: 使用 JOIN 的查询通常比那些更容易维护和修改 使用子查询或其他方法。
© www.soinside.com 2019 - 2024. All rights reserved.