You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Databricks中连接条件含1=1是否影响内连接执行时间及流程?

Azure Databricks中两个内连接查询的执行差异分析

假设table1是一张拥有5亿条记录的超大表,以下是对两个内连接查询的执行时间及连接流程的对比分析:

对比的两个查询

查询1

select *
from table1 A
join table1 b
  on 1=1
  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是永真条件,不会对连接的过滤逻辑产生任何额外限制,两个查询最终要筛选的结果集完全一致。
  • Catalyst优化器的自动简化:Azure Databricks基于Spark构建,其Catalyst优化器会在查询解析阶段自动识别并移除这类无意义的永真条件。最终两个查询会被优化成完全相同的物理执行计划。
  • 执行流程一致:优化后的物理计划会根据table1的数据规模、分区情况,选择最优的Join策略(如Sort Merge Join、Broadcast Hash Join等),执行时会先完成必要的数据分区/Shuffle,再基于date的范围条件进行连接匹配,不会因为多写了一个1=1产生额外的计算开销。

内容的提问来源于stack exchange,提问作者amarender reddy jali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 19:49:52