你的执行计划是不是只会看 EXPLAIN
很多转岗做 Greenplum 数据仓库的开发者,SQL 写得挺顺,但一遇到大表关联慢得离谱、节点内存经常报错,就只会重启或者盲目加索引。这门课专门解决这个能力缺口:看懂 GPDB 的分布式执行计划。它不讲基础语法,直接切入数据在 Segment 之间怎么移动。如果你连 PostgreSQL 的单机执行计划都看不懂,建议先补那部分再来;如果你已经能写复杂 SQL,但不知道为什么优化器选了广播而不是重分布,这门课就是你的查漏补缺清单。建议先看表连接那块,把内连接、左连接、全外连接在不同场景下触发数据重分布或广播的底层逻辑彻底吃透,这是后续诊断一切慢查询的地基。
从节点数据流转看懂优化器的真实意图
课程核心围绕三个维度展开。第一是表连接阶段的数据分布策略,详细拆解重分布与广播在具体 JOIN 类型下的触发条件和代价差异,让你明白左连接时哪张表被广播、全外连接为什么必然引发重分布。第二是数据扫描与聚合,这部分解释了 Motion 算子如何在节点间传递中间结果集,以及两阶段聚合的底层逻辑。第三是统计信息与数据倾斜,直击 GPDB 性能杀手。看完这些,你不会再对着 EXPLAIN ANALYZE 里的一堆 Motion 节点发呆,而是能准确指出哪一步产生了不必要的数据广播,或者哪个键的分布极度不均导致某个 Segment 内存溢出。学完后,你能独立完成对复杂分布式查询的执行路径分析,精准定位计算瓶颈,并根据执行计划调整建表时的分布键策略。
别光看视频必须对照真实集群练
这套资料只有几节核心课,全是硬骨头,千万别当成科普视频看完就完事。正确的配合练习方式是:每看完一个连接机制的讲解,立刻在自己的测试集群里建两张分布键不同的表,写对应的关联语句,然后跑 EXPLAIN ANALYZE。重点观察日志里的广播或重分布算子,对比课程里讲的原理是否和你的实际执行计划吻合。特别是统计信息那节,务必找一张没收集过统计信息的表,对比收集前后的执行计划差异,亲手感受优化器的路径选择变化。缺什么补什么,别假装看懂了,只有能拿着真实执行计划讲清楚数据到底在节点间怎么流转的,才算真正补上了这块短板。
课程目录
1-1 [Greenplum 执行计划之表连接] GPDB重分布于广播概念介绍 (12:43) 1-2 [Greenplum 执行计划之表连接] 内连接时重分布于广播原理 (20:37) 1-3 [Greenplum 执行计划之表连接] 左连接时重分布于广播原理 (12:48) 1-4 [Greenplum 执行计划之表连接] 全外连接时重分布于广播原理 (11:55) 2-1 [Greenplum 执行计划之数据扫描] 数据扫描聚合关联原理详解 (23:36) 3-1 [Greenplum 执行计划之统计信息] 统计信息与数据倾斜详解 (20:32)





