
SQL查询优化器
文章平均质量分 75
SQL查询优化器, 主要包含cascades,gporca以及mysql的查询优化器
悟世者
希望用技术改变世界的程序员,资深数据库内核架构师,长期在一线从事数据库核心模块开发。有希望咨询和交流的问题可以直接私信或者留言,看到后会及时回复。
展开
-
2023-08-07 数据库-查询优化器相关论文-记录
大概用了9个月的时间,研读了优化器、执行器经典论文,论文主要来源于。原创 2023-08-07 05:33:56 · 679 阅读 · 0 评论 -
2023-04-20 mysql-子查询中嵌套join上拉平坦-分析
mysql/sql的查询优化器, 会将子查询中的嵌套join进行上拉,形成一个平坦的join列表.这样形成一个平坦的join的列表, 便于两两之间逐个的join操作.本文对其进行分析.原创 2023-04-20 12:12:20 · 259 阅读 · 0 评论 -
2022-12-23 数据库查询优化器相关论文
数据库查询优化器论文原创 2022-12-23 18:04:38 · 1229 阅读 · 0 评论 -
2023-03-20 duckdb-Push-Based Execution Model
DuckDB 是我非常喜欢的一个数据库,它基于实现了 SQL Parser,语法和 PostgreSQL 一致,内嵌 SQLite 的 REPL CLI,编译好后可直接运行 CLI 交互式输入 SQL 得到结果。架构简单、分析性能优秀、代码干净好读,极易上手。10 月初偶然间翻看 duckdb 的代码,发现他的执行引擎和计算调度采用了类似 Hyper 在《原创 2023-03-30 14:15:08 · 1007 阅读 · 0 评论 -
2023-03-08 mysql-子查询优化-in转换为exists-分析
mysql中对于in的子查询, 会尝试将in转换为exists, 本文分析改策略。原创 2023-03-08 21:08:19 · 457 阅读 · 0 评论 -
2023-03-08 mysql-子查询优化-条件上拉-分析
对于普通的相关子查询, mysql一般采用条件上拉操作进行优化, 就是将子查询中,与和外表关联的条件,从子查询中上拉出去。好处便是这样做了之后, 更便于将内表和外表转换为join操作。以利用join的优化策略进行进一步优化。本文以TPCH-Q16的变体为例, 分析条件上拉优化。原创 2023-03-08 12:59:44 · 147 阅读 · 0 评论 -
2023-03-07 mysql-not-in子查询-antijoin策略-semiJoin的Materialize with deduplication
mysql-not-in子查询-antijoin策略-Materialize with deduplication, 以TPCH-Q16为例分析not in子查询的antijoin策略, 并分析semi join的Materialize with deduplication。原创 2023-03-07 21:08:07 · 381 阅读 · 0 评论 -
2023-02-04 Apache Calcite 和 SQL 引擎学习资料总结
优化器框架业界都有相应的论文,建议看原论文理解原创 2023-02-04 11:24:52 · 1170 阅读 · 0 评论 -
2023-03-07 MySQL—基于规则优化-子查询优化
在使用MySQL编写查询语句时,有时候无法避免的会写出一些执行起来十分耗时、耗性能的语句,但是MySQL在执行这些语句的时候,还是会竭尽全力的做出一些优化,把这个很糟糕的语句转换成某种可以比较高效执行的形式,这个过程也可以被称作查询重写。原创 2023-03-07 12:01:56 · 448 阅读 · 0 评论 -
2023-03-02 mysql-查询优化-连接的消除
分析mysql-查询优化-连接的消除。原创 2023-03-02 20:20:41 · 134 阅读 · 0 评论 -
2023-02-23 xu-columbia-thesis1998-retext
xu-columbia-thesis1998原创 2023-02-23 14:39:23 · 513 阅读 · 0 评论 -
2023-02-22 cascades-columbia-核心处理记录
columbia是哥伦比亚对于cascades的一个改进, 并且paper写的也相对详尽. 虽然cacades的实现有很多,比较出名的就是greenplum的gporca, 不过columbia也有其显著的优点.本文通过对columbia的分析展开对cascades优化器思想的探讨.原创 2023-02-22 20:32:48 · 284 阅读 · 0 评论 -
2022-11-17 更高效的Cascades优化器 - Columbia Query Optimizer
随着大数据的涌现和实时分析需求变得越来越重要,数据库系统对于复杂查询的处理能力逐渐成为武器库的基本装备,作为执行计划的生成组件,优化器的功能性会对系统的计算能力产生质的影响。cascades框架是理论上最为灵活且扩展性最强的优化器实现方案,但可惜目前业界成熟的实现并不多,开源的更少。Calcite虽然广为使用但其自身主要针对异构数据源的兼容,在优化规则的支持上并不很丰富Orca虽然强大,但由于与Postgres生态的耦合较深,导致无法被广泛应用。原创 2022-11-17 21:30:43 · 715 阅读 · 0 评论 -
2023-02-04 用Orca替换MySQL的优化器
在当前基础上,使用更精确的阈值策略,比如走完MySQL的优化流程,基于串行代价的阈值,判断是否再走一遍Orca代价模型要相应调整,包括cost unit / cost formula,都应该更接近MySQL的执行模式和Innodb storage layout的访问方式更彻底的改造,在生成初步的AST后就进入Orca做全局优化,最后转为MySQL executable plan,这种是理想的终极方案,但复杂度也要高非常非常多。原创 2023-02-04 19:15:26 · 633 阅读 · 0 评论 -
2023-02-04 Cascades Optimizer
在数据库中,SQL是用户首先感知的部分,用户只需进行『声明式』地编程,不需要指明具体的执行过程,即可从复杂的存储结构中获得想要的数据。在此过程中,优化器发挥的作用功不可没,向前承接用户查询,向后为执行指明方向,可谓是数据库的大脑。对优化器的研究从上世纪七十年代既已开始,到如今已经发展了数十年,其中有很多里程碑式的进展,例如Volcano/Cascades。在近些年新出现的一些数据库中,例如TiDB、CockroachDB、GreenPlum、Calcite等,也已经开始探索和尝试Cascades技术。原创 2023-02-04 20:19:59 · 813 阅读 · 0 评论 -
2023-02-07 Orca: A Modular Query Optimizer Architecture for Big Data
Orca是Pivotal公司基于Cascades框架自研的一套独立的查询优化器服务,主要服务于Pivotal公司的另外两个系统:基于Hadoop的HAWQ和著名的Greenplum,阿里的大数据分析引擎Hologres也是用Orca作为其优化器。从这里也可以看出,复杂的Cascades框架,确实具有更加的复杂查询处理能力,因此更适合于大数据或数仓类型的产品。模块化,以独立的Service形态单独存在,并不依附于特定的数据库产品,对外是标准化的接口和协议([1]),这样理论上可以被集成到任何数据库系统中。原创 2023-02-07 14:50:57 · 401 阅读 · 0 评论 -
2023-02-07 查询优化器gporca-调试追踪记录
查询优化器gporca-调试追踪记录。原创 2023-02-07 19:37:08 · 169 阅读 · 0 评论 -
2023-02-07 ORCA 源码阅读 Overview
有关 ORCA 的论文介绍不少,但是关于 OCRA 源码介绍的好像是一点没有(包括英文资料)整体性介绍一下 ORCA,比较粗略,一篇草稿文章(应该还会继续更新加内容,不鸽). 后面应该还会有更多细节文章(不鸽)原创 2023-02-07 20:07:56 · 886 阅读 · 0 评论 -
2023-02-21 gporca-查询优化器-CTE-1.mdp调试记录
gporca作为gpdb的查询优化器, 相对独立,不但可以作为一个library,还可以作为一个service单独的进行运行。与gporca的接口交互的数据都是DXL格式, 类似于XML, 本文以CTE-1.mdp为测试数据, 分析gporca的具体的运行。原创 2023-02-21 20:10:41 · 287 阅读 · 0 评论