zhouqingqing / qpmodel

A Relational Optimizer and Executor
MIT License
64 stars 18 forks source link

only for disscussion #285

Closed zhouruiapple closed 3 years ago

zhouruiapple commented 3 years ago

2020年对qpmodel的整体评价(如哪些feature,技术你认为最有价值)

  1. 模块化 – 采用抽象Catalog和Cost Model,qpmodel设计为不局限于单个数据库的高度模块化的优化器框架,可以插件的形式集成到数据库系统或独立提供AP引擎服务。
  2. 可验证 – 提供基于TPC-*用例集的完整的测试框架和EXPLAIN工具,可快速验证新特性的正确性和性能。这些可以提高开发的效率,帮助发现和解决问题。
  3. 扩展性 – 采用memo和等价表达式转换规则框架,可灵活的扩展规则和表达式。
  4. 参考最新的研究实现了全面的CTE,子查询和聚合算子,同时考虑执行计划的结构和形状,生成高质量的执行计划。
  5. 优化器采用Cascades方法自上而下进行优化剪枝以及自下而上进行连接优化,提升优化性能。 2021年对qpmodel的需求(最希望围绕哪些方向进行研究)
  6. 易用性 - 在支持标准SQL的基础上,提供灵活的数据分析API(DataFrame)。
  7. 基于机器学习的查询优化方法。
  8. 多阶段优化 – 将大量优化规则分散到多个阶段,在保证执行计划的质量的同时减少不必要的优化。
  9. 并行查询优化 – 优化器是CPU密集处理,高效的CPU使用提供更好的优化性能。
  10. 并行执行 – 通过查询间并行和查询内并行提升执行器性能。