文章 2024-07-28 来自:开发者社区

SQL优化器原理 - Join重排

引言SQL(Structured Query Language)作为关系型数据库的标准查询语言,其优化是数据库性能提升的关键。在复杂的查询操作中,尤其是在涉及多表联合查询(Join)时,SQL优化器的作用尤为重要。优化器通过分析查询语句,选择最优的执行计划,以达到减少查询...

文章 2024-07-28 来自:开发者社区

SQL优化器原理 - Join重排。

引言SQL(Structured Query Language)作为关系型数据库的标准查询语言,其优化是数据库性能提升的关键。在复杂的查询操作中,尤其是在涉及多表联合查询(Join)时,SQL优化器的作用尤为重要。优化器通过分析查询语句,选择最优的执行计划,以达到减少查询...

文章 2023-06-05 来自:开发者社区

数据库内核那些事|细说PolarDB优化器查询变换 - join消除篇

查询优化概念查询变换的概念非常简单,就是基于关系代数的等价变换规则,将查询的一种形式转换为另外一种等价但更为高效的形式,通过这种转换,既可以保证查询结果的正确性,又可以提升查询的执行效率。优化器可以完成的变换非常多,如果将每一种变换视为一种改写规则的话,几百个规则也是比较常见的。其中有些变换(规则),总是可以让查询变得更为高效,我们称其为启发式变换,但有些则不一定,需要基于代价来决定。本篇文章将....

数据库内核那些事|细说PolarDB优化器查询变换 - join消除篇
文章 2023-01-16 来自:开发者社区

PolarDB for MySQL优化器查询变换系列 - join条件下推

引言 在数据库的查询优化特性中,基于关系代数的等价变换一直是一个比较有挑战但又收益较高的方向,也就是我们常说的查询变换。很多变换可以在严格验证不存在性能回退的情况下做到启发式的应用(无脑变换),从而对性能产生巨大提升,一般是1~2个数量级。如上文章列举的join消除,就是这么一个启发式应用的例子。 而利用MySQL8.0的窗口函数对相关子查询做展开,在满足特定前提条件下,也可以实...

PolarDB for MySQL优化器查询变换系列 - join条件下推
文章 2022-12-07 来自:开发者社区

PolarDB 优化器查询变换系列 - join消除

背景众所周知,数据库的查询优化器可以说是整个系统的"大脑",一条查询语句执行的是否高效,在不同的优化器决策下,可能会产生几个数量级的性能差异,因此优化器也是数据库系统中最为核心的组件和核心竞争力之一。对于各个商业数据库,其优化器通过常年积累下来的能力,是其最为核心的商业机密ÿ...

文章 2021-10-10 来自:开发者社区

【DB吐槽大会】第58期 - PG 复杂JOIN优化器有巨大提升空间

背景1、产品的问题点PG 复杂JOIN优化器有巨大提升空间2、问题点背后涉及的技术原理PostgreSQL 有两套JOIN顺序、JOIN方法的自动优化方法. (包括子查询提升后的JOIN).穷举.有2个问题, 1. 表越多耗时越长(穷举组合N的阶乘-1种), 2. 一次性生成执行计划, 然后执行, 这种方法随着JOIN层级越深, JOIN相匹配记录的评估会越来越不准确.geqo, 类似图式算法(....

文章 2019-04-27 来自:开发者社区

PostgreSQL JOIN limit 优化器 成本计算 改进 - mergejoin startup cost 优化

标签 PostgreSQL , join , limit , startup cost , cbo , 优化器改进 背景 PostgreSQL limit N的成本估算,是通过计算总成本A,以及估算得到的总记录数B得到: (N/B)*A 大概意思就是占比的方法计算 对于单表查询,这种方法通常来说比较适用,但是如果数据分布有倾斜,实际上也并不一定适用,例如以下两种情况: 1、符...

文章 2018-10-23 来自:开发者社区

PostgreSQL JOIN limit 优化器 成本计算 改进 - mergejoin startup cost 优化

背景PostgreSQL limit N的成本估算,是通过计算总成本A,以及估算得到的总记录数B得到: (N/B)*A 大概意思就是占比的方法计算 对于单表查询,这种方法通常来说比较适用,但是如果数据分布有倾斜,实际上也并不一定适用,例如以下两种情况: 1、符合条件的数据占总记录数的50%,但是全部分布在表的末尾,那么limit 10000 条到底是走索引快还是走全表扫描快呢? 2、符合条...

文章 2017-08-31 来自:开发者社区

SQL优化器原理 - Join重排

这是ODPS有关SQL优化器原理的系列文章之一。我们会陆续推出SQL优化器有关优化规则和框架的其他文章。添加钉钉群“关系代数优化技术”(群号11719083)可以获取最新文章发布动态。 本文的目标是解释Join重排这个特性的基础概念和算法,如果想快速了解并在ODPS上使用这个特性,请直接跳到“总结”。 简介 Join重排是经典的SQL优化问题。考虑3个表的自然连接 A ⋈ B ⋈ C ,在不影响....

文章 2017-08-27 来自:开发者社区

SQL优化器原理 - Auto Hash Join

这是MaxCompute有关SQL优化器原理的系列文章之一。我们会陆续推出SQL优化器有关优化规则和框架的其他文章。添加钉钉群“关系代数优化技术”(群号11719083)可以获取最新文章发布动态(二维码在文章末尾)。 本文主要描述MaxCompute优化器实现的Auto Hash Join的功能。 简介 在MaxCompute中,Join操作符的实现算法之一名为"Hash Join",其实现原理....

SQL优化器原理 - Auto Hash Join

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

达摩院

AI前沿技术与产品分享

+关注