GaussDB 数据库架构师修炼(十八) SQL执行引擎-概述
1 执行引擎演进
- 传统数据库
执行引擎一般负责查询的执行。
执行引擎在SQL执行栈中接受优化器生成的执行计划Plan, 并通过存储引擎提供的数据读写接口, 实现对数据进行计算得到查询结果集。
- 分布式数据库
执行引擎范围还应包括节点间网络数据交换和传输部分。
2 执行引擎功能
- 位于SQL引擎和存储引擎之间,负责将数据从存储引擎读取出来,根据执行计划将数据处理加工返回给客户端。
- 迭代器模式,控制流向下,数据流向上,上层算子驱动下层算子获取数据。
3 执行引擎处理流程
初始化:迭代遍历整个PlanTree,对每个算子进行初始化操作。包括初始化 状态节点、初始化元组表、初始化子节 点、初始化元组类型和投影信息等。
执行:当前算子依据算子类型处理下 层算子返回值, 处理后返回给上层算子。
结束:迭代遍历整个PlanTree,清理 对应算子内的资源。