duckdb查询计划:逻辑与物理
发布时间
阅读量:
阅读量
摘要:
duckdb的查询规划过程高度契合教科书中的理论定义,首先将ANSI SQL语句转化为查询树结构,进而生成对应的逻辑查询计划。随后,将逻辑查询计划中的各个节点逐步映射为物理执行计划的节点。
相较于mysql中逻辑计划与物理计划之间缺乏明确区分的情况,所有操作均直接针对转换后的查询树节点进行处理,整体流程显得更加清晰明了。
本文将对逻辑计划与物理计划的相关内容进行深入探讨。在分析过程中会涉及基于规则的优化策略,但不会涵盖基于代价的优化方法。有关基于代价的优化内容将在后续部分另行展开讨论。
参考
https://www.youtube.com/watch?v=bXfvmeWsQ78
ANSI SQL生成逻辑计划
- duckdb 引入了简化版的 postgres 语法树构建组件
- 这可以被视作对 ANSI SQL 进行词法解析的过程,即实现分词操作,随后进行语法解析,进而生成查询树节点。
- 实际上,所有关系型数据库在这一方面的处理方式大致相同,例如 mysql,关键在于深入理解经过语法解析后所形成的查询树节点的数据结构,这些结构将作为后续逻辑执行计划生成的重要输入
核心处理:
Planner::CreatePlan功能实现
#0 duckdb::Planner::Create
全部评论 (0)
还没有任何评论哟~
