96SEO 2026-02-19 12:25 15
自2019年起#xff0c;并行执行功能已被许多客户应用于多种场景之中#xff0c;其重要性日益凸显。

然而#xff0c;遗憾的是#xff0c;我们始终未能提供一份详尽的用户使用文档
这是一份姗姗来迟的关于OceanBase并行执行的系统化产品文档。
自2019年起并行执行功能已被许多客户应用于多种场景之中其重要性日益凸显。
然而遗憾的是我们始终未能提供一份详尽的用户使用文档这无疑给业务团队在运用并行执行功能时带来了诸多困扰。
今日我们决心弥补这一缺憾。
关于并行执行的内容我们将通过七篇博客系列进行详尽的解析而本文正是这一系列的第一篇。
资源的能力。
本文将深入探讨并行执行的工作机制同时阐明如何在OceanBase数据库中对其进行控制、管理与监控。
查询任务分成多个子任务并允许这些子任务在多个处理器上同时运行以提高整个查询任务的执行效率。
在现代计算机系统中多核处理器、多线程和高速网络连接广泛应用这使得并行执行成为了一种可行的高效率查询技术。
并行执行能够极大降低计算密集型大查询的响应时间被广泛应用在离线数据仓库、实时报表、在线大数据分析等业务场景同时还应用在批量导数快速构建索引表等领域。
操作如修改主键、改变列类型建索引等从已有大数据建表Create
什么场景适用并行执行什么场景不适用并行执行硬件要求并行执行工作原理并行执行工作线程通过均衡负载来优化性能
并行执行用多个处理器协同并发处理同一任务在这样的系统中会有收益
如果你的系统不满足上述特征那么并行执行可能不会带来显著收益。
在一些高负载小内存或
并行执行不仅适用于离线数据仓库、实时报表、在线大数据分析等分析型系统而且在
串行执行使用单个线程来执行数据库操作在下面这些场景下使用串行执行优于并行执行
执行时间都在毫秒级。
并行查询本身有毫秒级的调度开销对于短查询来说并行执行带来的收益完全会被调度开销所抵消。
系统负载本就很高。
并行执行的设计目标就是去充分利用系统的空余资源如果系统本身已经没有空余资源那么并行执行并不能带来额外收益相反还会影响系统整体性能。
性能、网络带宽都会影响并行执行性能其中任意一项成为瓶颈都会拖累并行执行性能。
语句的并行执行生产者消费者流水线模型并行的粒度生产者和消费者之间的数据分发方式生产者和消费者之间的数据传输机制
主线程接收、解析SQL的线程根据计划形态预约并行执行需要的线程资源。
这些线程资源可能来自集群中的多台机器。
SQL
COORDINATOR。
并行调度算子解析计划将它们切分成多个操作步骤按照自底向上的顺序调度执行这些操作。
每个操作都会尽可能并行执行。
当所有操作并行执行完成后并行调度算子会接收计算结果并将结果吐给它的上层算子如
并行执行使用生产者-消费者模型来进行流水执行。
并行调度算子解析计划将它们切分成多个操作步骤每个操作步骤称之为一个
---------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------
-------------------------------------
output([INTERNAL_FUNCTION(game.team,
T_FUN_SUM(T_FUN_SUM(game.score)))]),
output([INTERNAL_FUNCTION(game.team,
T_FUN_SUM(T_FUN_SUM(game.score)))]),
[T_FUN_SUM(T_FUN_SUM(game.score))]),
agg_func([T_FUN_SUM(T_FUN_SUM(game.score))])
agg_func([T_FUN_SUM(game.score)])
---------------------------------------------------------------------------------------------------------
数据做预聚合第二步后三个线程负责对预聚合的数据做最终聚合第三步最终聚合结果发给并行调度器由它返回给客户端。
描述的范围是一整个分区扫描任务涉及到多少个分区就会划分出多少个
描述的范围是一个分区中的一段连续数据。
数据扫描场景里一般都是使用
在给定并行度的情况下为了确保扫描任务的均衡优化器会自动选择将数据划分成分区粒度Partition
既不会太大也不会太小。
太大可能导致数据倾斜让部分线程少干活太小会导致频繁的扫描切换开销。
扫描算子会一个接一个地处理这些扫描任务处理完一个之后接着处理下一个直到所有任务处理完毕。
数据分发方式指的是数据从一组并行执行工作线程生产者发送给另一组消费者时使用的方法。
优化器会使用一系列的优化策略决策使用哪种数据重分布方式以达到最优的性能。
时生产者计算出数据行对应的目标表所在分区然后将行数据发给处理这个分区的消费者线程。
场景中。
在这种场景下一个分区可以被多个线程并发更新因此需要使用
来确保相同值的数据行被同一个线程处理不同值的数据行尽可能均分到多个线程处理。
时生产者将每一个数据行发送消费者端的每一个线程使得消费者端每一个线程都拥有全量的生产者端数据。
时生产者将每一个数据行发送消费者端的每一个节点上使得消费者端每一个节点都拥有全量的生产者端数据。
然后节点里的消费者线程协同处理这份数据。
场景里消费端的每个线程会从共享数据里取一部分数据行作为驱动数据去目标表里做
常用于排序场景各个消费者线程只需排序好发给自己的数据数据就能在全局范围内有序。
时生产者将数据随机打散发给消费者线程使得每个消费者线程处理的数据数量几乎一致从而达到均衡负载的目的。
之间会以生产者-消费者的模式连接起来并行执行。
为了方便在生产者和消费者之间传输数据需要创建一个传输网络。
进行收发。
每个工作线程可以对外建立数千个虚拟链接具有高度的可扩展性。
除此之外DTL
一个并行查询会使用两类线程1个主线程若干个并行工作线程。
其中主线程和普通的
查询使用的线程没有任何区别来自普通工作线程池并行工作线程来自专用线程池。
使用专用线程池模型来分配并行工作线程。
每个租户在其所属的各个节点里都有一个租户专属的并行执行线程池并行查询工作线程都通过这个线程池来分配。
0按需增长没有上限。
为了避免空闲线程数过多线程池引入自动回收机制。
对于任意线程
虽然线程池的大小没有上限但是通过下面两个机制能在绝大多数场景里形成事实上限
模块预约线程资源预约成功后才能投入执行。
通过这个机制能限制并发查询数量。
Admission
并发控制与排队》一节。
查询每次从线程池申请线程时单次申请的线程数量不会超过
px_workers_per_cpu_quota如果超过则最多只分配
划分任务的时候工作任务会动态地分配到工作线程之间。
这样可以最小化工作负载不均衡问题即一些工作线程的工作量不会明显超过其它工作线程。
SQL
划分任务时可以通过让任务数是工作线程数的整数倍来优化性能。
这适用于
16以大约十六分之一的时间完成工作你也可以使用五个工作线程以五分之一的时间完成工作或使用两个线程以一半的时间完成工作。
个分区。
而其他线程完成工作后它们变为空闲状态。
当每个分区的数据量差不多时这种配置会导致性能不优当每个分区的数据量有所差异时实际性能则会因情况而异。
个分区每个分区的数据量差不多。
在这种情况下每个线程在完成其第一个分区后会处理第二个分区但只有四个线程会处理第三个分区而其他两个线程会保持空闲。
一般来说不能假设在给定数量的分区N和给定数量的工作线程P上执行并行操作所花费的时间等于
P。
这个公式没有考虑到一些线程可能需要等待其他线程完成最后的分区。
但是通过选择适当的
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback