资料集合
- herry liang 优化器技术论文学习知乎专栏
- PingCap 学习资料
- 清华大学 AIDB 论文
- CWI 荷兰数学和计算机科学研究学会数据库Paper
- 数据库查询优化器论文列表
- 编程小梦康凯森博客
- 数据库内核杂谈
SQL 标准
SQL 概念学习
JDBC Server && Driver
SQL 解析 && 元数据验证
- SQL 解析
- SQL 元数据验证
- Apache Calcite的类型系统
- LinkedIn transport,A framework for writing performant user-defined functions (UDFs) that are portable across a variety of engines including Apache Spark, Apache Hive, and Presto
Apache Calcite 学习
- Apache Calcite 一条 SQL 的查询计划生成之旅【上】
- Apache Calcite 一条 SQL 的查询计划生成之旅【下】
- SQL 查询优化原理与 Volcano Optimizer 介绍
- Apache Calcite 处理流程详解(一)
- Apache Calcite 优化器详解(二)
- Calcite 处理一条SQL - I (SQL to Rel)
- Calcite 处理一条SQL - II (Rels Into Planner)
- Calcite 启发式 Planner (HepPlanner)
- Apache Calcite 知乎学习专栏
- Apache Calcite的优化器规则解析
- Apache Calcite VolcanoPlanner 详解(三)
- Apache Calcite VolcanoPlanner代价计算解析与源码调试方法
- Apache Calcite VolcanoPlanner优化过程解析
- Calcite 中新增的 Top-down 优化器
- Calcite CBO 博客 - RelMetadataProvider 讲解
- Apache Calcite Document
- Calcite 对 Volcano 优化器优先队列的实现
- Apache Calcite Lattices
- Calcite RelTrait 概念讲解
- calcite 概念和架构
- Calcite RelTrait 讲解二
- Calcite Volcano Planner
- Apache Calcite: A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources
- Calcite Join 处理 - I (执行器 & 简单 Reorder)
优化器相关技术博客
RBO && CBO && CBQT
- 数据库挖矿系列-优化器设计探索穿越之旅
- 独家揭秘 | 阿里云分析型数据库AnalyticDB新一代CBO优化器技术
- The Volcano Optimizer Generator : Extensibility and Efficient Search
- The Cascades Framework for Query Optimization
- cascade 优化器 -- 知乎
- 级联火山口:数据库查询优化器初探
- 什么是谓词下推,看这一篇就够了
- 一文终结SQL子查询优化
- 数据库内核杂谈(九):开源优化器 ORCA
- 《Orca: A Modular Query Optimizer Architecture for Big Data》导读
- 用Orca替换MySQL的优化器?
- Cost-Based Query Transformation 从论文到工程实现
- Cost-based query transformation in Oracle
- 《Cost-Based Query Transformation》paper-reading(上)
- 《Cost-Based Query Transformation》paper-reading(下)
- 更高效的Cascades优化器 - Columbia Query Optimizer
- Cascades/Columbia Optimizer
- [VLDB 2016] The MemSQL Query Optimizer,HTAP优化器论文阅读
- Adaptive Statistics In Oracle 12c
优化器框架业界都有相应的论文,建议看原论文理解
同类引擎学习
- StarRocks 源码导读一
- StarRocks 优化器代码导读
- Tidb Cascades 优化器
- PolarDB-X CBO 优化器技术内幕
- StarRocks 技术原理资料汇总
- PolarDB-X 优化器核心技术 ~ Join Reorder
- StarRocks Join Reorder 源码解析
- StarRocks 查询优化系列文章
- StarRocks 技术内幕 | Join 查询优化
- Apache Doris Join 实现与调优实践
- 四万字讲解 doris
- 通过源码构建 StarRocks
- 通过源码构建 Doris
- Quick SQL -- 统一异构数据源 SQL 解析和翻译项目
- 天穹SuperSQL如何把腾讯 PB 级大数据计算做到秒级?
- SuperSQL:跨数据源、跨DC、跨执行引擎的高性能大数据SQL中间件
- 「解耦」方能「专注」——腾讯天穹SuperSQL跨引擎计算揭秘
- 腾讯天穹SuperSQL联邦融合计算引擎揭秘
- PolarDB for MySQL优化器查询变换系列 - join消除
物化视图
- 一文详解物化视图改写
- 物化视图在 SparkSQL 中的实践
- Spark SQL 物化视图原理与实践
- Presto 物化视图
- Kylin Kube 命中机制
- Oracle 物化视图
- Calcite UnifyRule物化识别原理
- 基于Impala的高性能数仓实践之物化视图服务
- SQL Server Partitioned Views
- Partitioned views over table partitioning
学习视频
- Moody-老师 数据库内核
- CMU Database Group - CMU 数据库 youtube,打开有惊喜
- 15-721 Advanced Database Systems (Spring 2020),2023 版-15-721
- CMU 15-721 | 数据库系统进阶(2020·完整版)
- Writing a Streaming SQL & Materialized View Engine - Kenny Gorman
- Star Burst 优化器
- An Overview of the Starburst Trino Query Optimizer (Karol Sobczak)
- Noria: Fast Materialized Views for Fast Websites
相关开源项目
- Linkedin coral,这个项目能够将 Presto、Hive、Spark 之间方言互转
- substrait,使用 protobuf 来实现引擎中立的查询计划的序列化
- 向量化执行引擎框架 Gluten 宣布正式开源
- CMU noisepage
- Velox,向量化计算算子库
- Apache Calcite
- Apache Flink
- StarRocks
- Apache Doris
- Dremio
各种开源协议的对比
书籍
- Internal of Spark SQL
- 《数据库查询优化器的艺术:原理解析与 SQL 性能优化》
追踪开源项目 Star 数的网站
测试框架和 benchmark
- join-order-benchmark
- Tpc-ds hive-testbench
- 数据集:SSB、TPC-DS、TPC-H
- Cost Model 准确性测试:Testing the Accuracy of Query Optimizers
- ZetaSQL 语义兼容性测试 - ZetaSQL 本身有 60K+ 测试用例。ZetaSQL 语义兼容性测试的独特之处在于:很大一部分测试用例集中于 SQL 表达式和单个函数,广泛涵盖了不同的边界条件——这是许多其他测试套件不能提供的。
- SQL 逻辑正确性测试 - 逻辑正确性SQL 测试的天花板,是 SQLLite 的 SQLLogicTest 框架。它包含超过 7M 个测试查询(即700万!)。Firebolt 编写了一个脚本,将 SQLLogicTests 移植到内部 PeaceKeeper 格式,进行测试。DuckDB 也采用了类似的方法。
- 测试工具:YCSB