☰
Join查询计划中的probe侧和build侧是如何工作的?
2026/11/3 19:22:06 网站建设 项目流程

在 Join 的物理计划里,build side(构建侧) 和 probe side(探测侧) 主要出现在 Hash Join 类算法中:

  • build side:先读入、在内存中构建哈希表的一侧。
  • probe side:后读入、逐行拿 join key 去哈希表里查找匹配的一侧。

一句话:build 侧建表,probe 侧查表。

1. 典型 Hash Join 工作流程

以 A JOIN B ON A.id = B.id 为例:

  • 选择 build side
    优化器通常选过滤后数据量小、列少、适合放内存的一侧作为 build side。比如 B 小,就用 B 建哈希表。

  • Build 阶段
    扫描 B,对每一行计算 hash(B.id),把 B.id -> B 行/需要的列 存入哈希表。
    哈希表通常按 hash 分桶,桶内还要做 key 的等值比较,因为不同 key 可能哈希冲突。

  • Probe 阶段
    扫描 A,对每一行计算 hash(A.id),定位到哈希桶,再比较 key,找到匹配的 B 行就输出连接结果。
    如果 A 的一行匹配到多条 B 行,就输出多行。

  • 外连接补充 NULL
    左外连接、右外连接、全外连接还需要记录“哪些 build 行被匹配过”,或对 probe 侧未匹配行补 NULL。

2. 两侧的角色不是固定的

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询