Anatomy of a SQL Engine
a year ago
- #Query Optimization
- #SQL
- #Database
- SQL引擎执行解析、绑定、计划简化、连接探索、计划成本计算、执行以及结果暂存
- 解析阶段通过左递归Yacc语法将查询转换为抽象语法树(AST)以提高效率
- 绑定过程将AST标识符与数据库目录符号匹配,类似于编程语言中的变量作用域解析
- 计划简化将SQL语法规范化为标准形式以获得更好的执行性能
- 连接探索通过搜索最优连接配置,并基于数据库统计信息进行成本评估
- 执行阶段将最终计划转换为可执行格式,通常采用基于行的迭代器模式
- 结果暂存将输出行转换为适合网络传输的格式
- 未来改进可能包括统一中间表示形式和优化内存管理机制