join条件中1=1是否影响inner join执行时间

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

连接条件中的

1=1
会影响内连接执行时间吗?

假设table1是一个非常大的表,有5亿条记录。 以下 SQL 连接执行时间和连接流程/步骤是否存在差异 在 Azure Databricks 中?

查询1

select *
from table1 A
join table1 b
  on 1=1 -- <- Here
  and b.date between a.Date-10 and a.date

查询2

select *
from table1 A
join table1 b 
  on b.date between a.Date-10 and a.date
sql apache-spark databricks
1个回答
0
投票

在连接条件中使用 1=1 会导致执行效率低下,因为从笛卡尔积创建大量中间结果集。始终使用相关的连接条件来优化性能。 谈到您提到的查询:Query1 通常会比 Query2 慢得多,尤其是对于大型数据集(5 亿条记录)。在 Query1 中创建的笛卡尔积将导致大量组合,然后将其过滤掉。 始终更喜欢像 (query2) 这样的直接连接条件来优化 SQL 查询中的性能和资源使用。

© www.soinside.com 2019 - 2024. All rights reserved.