对 StarRocks 查询优化相关工作感兴趣的小伙伴,这里开个合集让大家能系统性的了解它的个中原理。
首先,我们先来了解 StarRocks 如何完成一条查询 SQL 的处理:
一条查询SQL的StarRocks之旅
从 SQL 文本到分布式物理执行计划, 在 StarRocks 中,需要经过以下 5 个步骤:
- SQL Parse: 将 SQL 文本转换成一个 AST(抽象语法树)
- SQL Analyze:基于 AST 进行语法和语义分析
- SQL Logical Plan: 将 AST 转换成逻辑计划
- SQL Optimize:基于关系代数、统计信息、Cost 模型,对逻辑计划进行重写、转换,选择出 Cost “最低” 的物理执行计划
- 生成 Plan Fragment:将 Optimizer 选择的物理执行计划转换为 BE 可以直接执行的 Plan Fragment
那么我们就照着这个顺序继续读下去
查询优化源码解析:
- StarRocks Parser 源码解析
- StarRocks Analyzer 源码解析
- StarRocks 优化器代码导读
- StarRocks Join Reorder 源码解析
- StarRocks 统计信息和 Cost 估算
- StarRocks 如何添加一个优化规则
- StarRocks 如何添加一个 Operator?
- StarRocks 查询调度源码解析
- StarRocks Scan 算子源码解析
- StarRocks 聚合算子源码解析
- StarRocks Hash Join 源码解析
- StarRocks Sort 算子源码解析
- StarRocks Exchange 算子源码解析
- StarRocks 窗口算子源码解析
- StarRocks Set 算子源码解析
- StarRocks Runtime Filter 源码解析
- StarRocks 如何新增一个数据类型
- StarRocks 如何新增标量函数与聚合函数
- .`JDBC 外部表查询源码解析
本系列后续会持续更新,希望在阅读之后大家能有所启发!
欢迎加入 StarRocks 社区成为大数据的明日之星! StarRocks 社区架构出炉,等你通关升级!(内含领奖方式)