Join
-
数据库查询实现原理
这篇文章围绕数据库查询执行中的几个核心算子展开,重点从 I/O cost 的角度梳理排序、聚合和连接操作的实现原理。正文先介绍 External Merge Sort 的两阶段流程、pass 数量与总 I/O 开销计算,以及利用 B+ 树索引完成排序的不同场景;随后讨论 GROUP BY、DISTINCT 等聚合操作如何通过排序或哈希实现;后半部分则系统比较多种 Join 策略,包括 Nested Loop Join、Block Nested Loop Join、Index Nested Loop Join、Sort-Merge Join 和 Hash Join,并分析它们在不同内存与索引条件下的代价与适用场景。