执行引擎概述

在数据库系统中,执行引擎负责接手优化器创建的查询计划,并按照优化器指定的方式检索数据行。

目前 YMatrix 支持几种执行引擎的使用:

  • 基于 Greenplum 的火山引擎
  • YMatrix 自研发的向量化执行引擎
执行引擎 描述
火山执行引擎 火山执行引擎采用火山模型,也称为拉取执行模型(Pull Based)。SQL 查询在数据库中经过解析,会生成一棵查询树,查询树的每个执行节点为一个代数运算符(Operator)。查询执行时会由查询树自顶向下的迭代计算,数据则自底向上的被拉取处理
向量化执行引擎 向量化执行引擎是专门为面向列的存储引擎(如 MARS3MARS2AOCO)打造的高性能执行引擎。对于常见查询,相比面向行处理的传统执行引擎有一到两个数量级的性能提升
向量化执行器相比于标量执行引擎其性能收益来自于以下几方面:
1. 批量化处理降低执行开销
2. 小批量处理提升数据热度, 通过保持数据在 CPU 缓存中, 提升数据访问性能
3. 根据数据特征选择最佳处理路径
4. 减少函数调用开销并可利用 CPU 的 SIMD(Single Instruction,Multiple Data) 指令进一步提升效率
5. 逐列处理按需加载来避免加载无用数据
向量化支持自动对接 Postgres 传统优化器,手动开启 GPORCA 优化器