曹旭辉 发表于 2024-1-14 14:21:57

聊聊分布式 SQL 数据库Doris(五)

阅读 Doris SQL 原理解析,总结下Doris中SQL解析流程:

[*]词法识别:解析原始SQL文本,拆分token
[*]语法识别:将token转换成AST
[*]单机逻辑查询计划:将AST经过一系列的优化(比如,谓词下推等)成查询计划,提高执行性能与效率。
[*]分布式逻辑查询计划:根据分布式环境(数据分布信息、连接信息、Join算法等)将单机逻辑查询计划转换成分布式逻辑查询计划。
[*]分布式物理查询计划:在逻辑查询计划的基础上,根据数据的存储方式和机器的分布情况生成实际的执行计划。
https://img2023.cnblogs.com/blog/971683/202311/971683-20231127103946223-91637364.jpg
逻辑查询与物理查询的区别如下

[*]逻辑查询计划(Logical Query Plan):
○ 关注逻辑操作: 逻辑查询计划描述了查询的逻辑操作,即查询的高层次逻辑结构,而不关心具体的物理执行细节。
○ 抽象和通用性: 逻辑查询计划是相对抽象和通用的,与底层存储引擎和执行引擎的具体实现无关。
○ 用于优化器: 逻辑查询计划是优化器进行查询优化的基础。优化器根据逻辑查询计划来选择合适的物理执行计划。
[*]物理查询计划(Physical Query Plan):
○ 关注具体执行细节: 物理查询计划描述了如何在底层存储引擎上执行查询的具体细节,包括如何访问数据、执行连接、过滤和聚合等操作。
○ 与底层存储引擎相关: 物理查询计划是与底层存储引擎和执行引擎密切相关的,考虑了存储布局、索引选择、并行度等底层执行细节。
○ 用于执行引擎: 物理查询计划是执行引擎直接使用的计划,它指导具体的查询执行。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 聊聊分布式 SQL 数据库Doris(五)