TiDB 源码阅读(四):AST、逻辑计划、物理计划
💡
原文中文,约14000字,阅读约需34分钟。
📝
内容提要
本文探讨了TiDB中的AST、逻辑计划和物理计划。AST是SQL语句的抽象语法树,帮助数据库解析SQL。逻辑计划通过优化AST生成,物理计划则涉及具体的数据操作。文章还介绍了火山模型及其优缺点,强调了从SQL到执行计划的优化过程。
🎯
关键要点
- TiDB中的AST是SQL语句的抽象语法树,用于解析SQL。
- AST抛弃不重要的细节,保留语法结构,清晰表达代码层次。
- 逻辑计划通过优化AST生成,涉及构建逻辑算子。
- 逻辑计划优化包括列裁剪、谓词下推、常量传播等。
- 物理计划是如何操作数据的计划,涉及具体的数据操作。
- 火山模型是经典的查询执行引擎实现模型,数据通过统一接口流动。
- 火山模型的缺点是效率低,TiDB通过一次处理多个数据块来优化。
- Cascades优化器通过记录所有可能的方案来系统化搜索,避免重复计算。
- 物理计划生成过程包括统计信息计算、物理属性准备和最优物理计划选择。
- 完整的SQL到物理计划的过程是自顶向下的递归搜索,找到代价最低的执行方案。
➡️