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