基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
分布式执行与并行执行概述
更新时间:2026-08-30 22:11:55
本章节介绍 OceanBase 数据库中 SQL 查询的分布式执行与并行执行机制的概念与它们之间的关系。
概念介绍
OceanBase 数据库是分布式架构,SQL 查询从生成执行计划到运行,涉及三类能力:分布式执行、并行执行(PX)、并行查询。它们的关系如下:
分布式执行 (Distributed Execution):通过 EXCHANGE 算子实现跨节点数据重分布
并行执行 (Parallel Execution, PX) 包括
- 并行查询 (Parallel Query):即加速 SELECT
- 并行 DML (Parallel DML):即加速 INSERT/UPDATE/DELETE
- 并行 DDL (Parallel DDL):即加速 DDL 操作
| 能力名称 | 作用 | 核心机制 |
|---|---|---|
| 分布式执行 | 数据分布在多个节点上,查询需要跨节点操作 | 在计划树中插入 EXCHANGE 算子,按数据分布将任务拆分到不同节点执行 |
| 并行执行(PX) | 单条查询数据量大,需要更多 CPU/IO 资源来缩短响应时间 | 将任务切分为多个子任务,启动多个 Worker 线程并行处理 |
| 并行查询 | 并行执行在查询场景下的具体应用 | PX 的查询子类型,与之并列的还有并行 DML 和并行 DDL |
分布式执行
OceanBase 是 Shared-Nothing 架构的分布式数据库,表数据以分区方式存放在不同节点上。当查询涉及跨分区数据时,必然会要求执行计划能够对多个节点的数据进行操作,优化器会自动生成分布式执行计划。
分布式执行计划的核心是 数据重分布:在计划树中插入 EXCHANGE 算子,决定数据如何在节点间流动(如广播、Hash 分发等)。优化器采用两阶段方式生成分布式计划——先生成本地最优计划,再在需要数据重分布的位置插入 EXCHANGE 节点。
详细信息,参见分布式计划的生成、分布式执行计划调度、分布式执行计划管理。
并行执行(PX)
并行执行(Parallel Execution)是将一个较大的任务切分为多个较小的子任务,启动多个 Worker 线程来并行处理,从而利用更多 CPU 与 IO 资源缩短响应时间。并行执行是一个框架性概念,包含三种子类型:
- 并行查询(Parallel Query):对
SELECT查询开启并行。 - 并行 DML(Parallel DML):对
INSERT/UPDATE/DELETE操作开启并行。 - 并行 DDL(Parallel DDL):对 DDL 操作(如建表、建索引)开启并行。
并行执行的关键参数是 并行度(DOP,Degree of Parallel),它决定了参与并行处理的 Worker 线程数量。DOP 越大,并行处理能力越强,但消耗的 CPU、IO 和内存资源也越多。
详细信息,参见并行执行概述、并行开启方式及优先级(Auto DOP)。
分布式执行和并行执行的关系
分布式执行和并行执行是两个正交的能力维度,可以独立使用,也可以叠加使用:
| 场景 | 是否分布式 | 是否并行 | 说明 |
|---|---|---|---|
| 单节点单分区查询 | 否 | 否 | 可以直接简单的本地执行 |
单节点查询加 PARALLEL Hint |
否 | 是 | 本地执行计划 + 分区内并行 |
| 跨节点查询(分区表) | 是 | 否(DOP=1) | 分布式计划,各节点单线程执行 |
跨节点查询 + PARALLEL(8) |
是 | 是 | 分布式计划 + 并行执行 |
叠加使用时,执行计划在每个 DFO(Data Flow Operation)内部都可以启动多个 Worker 并行处理数据,DFO 之间则通过调度器协调执行顺序。
推荐阅读路径
理解执行计划是如何生成的:
了解如何开启和配置并行:
- 并行执行概述:PX 框架与分类
- 并行开启方式及优先级:Auto DOP、Hint、系统变量、Schema DOP
- 自动并行度 Auto DOP:优化器自动选择并行度
了解并行查询/DML/DDL 如何执行:
调优并行执行的参数:
- 并行查询的参数调优:并行度变量与 EXCHANGE 配置