论文解读|从论文到工程实现:PolarDB Cost Based查询改写

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 论文解读|从论文到工程实现:PolarDB Cost Based查询改写

转载自: https://mp.weixin.qq.com/s/REpDpnWS2qlRpXytWEkIEg




引言

《Cost-Based Query Transformation in Oracle》[1]这篇论文是Oracle 2006年放出来的,很详细介绍Oracle是怎么做基于代价的查询变换,知乎的梁老师有篇深度解读《henry liang:Cost-based query transformation in Oracle》[2]有兴趣的同学可以自行了解。但论文只是介绍了一下思想,到具体的工程实现还是有很大的gap,本文试图补齐这些gap。

先抛出一个问题,论文中介绍了大量的启发式变换规则,和cost-based变换规则,如何组织它们,制定顺序?本人以前有幸在presto里面加过一些变换,里面林林总总快100个启发式规则,前后都是有相互依赖,加错地方就是负优化,现在回想一下都是头皮发麻。


总结


cbqt只是帮你找到最准,最优的变换,框架自身并不会降低SQL时延,但具体的变换规则能。cbqt框架的价值在于当你有很多规则,它通过代价估算评估是不是要应用这条规则。当我们精力有限,可有优先搞定如下ROI高的变换。

各种规则收益


其中SU变换增益最大,平均能提升3.8倍,这指导我们可以多花精力在消除子查询上。MySQL SU变换也是比较少的,只有常见的转derived table,spj子查询转semi join。但PolarDB MySQL版将大大增强这部分,后续会有更多技术内幕披露,敬请期待。

此外,一些变换规则确实需要日积月累,对关系代数有深的理解,这也是数据库资深从业者的福音。可以看看SJC变换规则,那是相当复杂了。Oracle做了很多很复杂SQL的变换,举个GBVM的例子,Oracle支持带groupby的view merge,对比之下MySQL是不支持的,仅支持简单的spj的view merge,离Oracle还有很大的距离。


PolarDB MySQL相关工作介绍


云原生数据库PolarDB已经实现了cbqt,但仍需要更多变换规则配合,这是一个长期改进的项目,目前我们在不断加入更多的变换规则,相信在不久的将来,对于复杂的查询,我们也能成倍的降低时延,给用户一个丝滑体验。另外,产品在并行计算ePQ(多核,多机)方面有非常大的查询性能改进,是关系型云数据库里面的领导者,对于同类竞品AWS Aurora有代差上的领先程度。附上官方渠道发布的性能数据,ePQ版本比原生MySQL单条执行最大提升150倍,以下是云原生数据库 PolarDB MySQL版并行查询的产品功能介绍。

https://help.aliyun.com/document_detail/426501.html

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
3月前
|
关系型数据库 分布式数据库 数据库
|
6月前
|
Cloud Native 关系型数据库 分布式数据库
|
4月前
|
存储 监控 关系型数据库
突破IO瓶颈:PolarDB分布式并行查询(Parallel Query)深度调优手册
在海量数据处理中,I/O瓶颈严重制约数据库性能。本文基于PolarDB MySQL 8.0.32版本,深入解析分布式并行查询技术如何提升CPU利用率至86.7%、IO吞吐达8.5GB/s,并结合20+实战案例,系统讲解并行架构、执行计划优化、资源调优与故障排查方法,助力实现高性能数据分析。
133 6
|
8月前
|
存储 关系型数据库 MySQL
客户说|乐檬零售引入PolarDB:查询性能百倍提升,稳定支撑超10万家门店
客户说|乐檬零售引入PolarDB:查询性能百倍提升,稳定支撑超10万家门店
290 2
客户说|乐檬零售引入PolarDB:查询性能百倍提升,稳定支撑超10万家门店
|
关系型数据库 MySQL 分布式数据库
PolarDB 并行查询问题之PQ2.0的自适应执行策略实现如何解决
PolarDB 并行查询问题之PQ2.0的自适应执行策略实现如何解决
73 2
|
存储 Cloud Native 关系型数据库
PolarDB 并行查询问题之EXISTS子查询在并行查询中如何解决
PolarDB 并行查询问题之EXISTS子查询在并行查询中如何解决
74 1
|
存储 关系型数据库 分布式数据库
PolarDB 并行查询问题之分布式查询执行过程中的数据分发如何解决
PolarDB 并行查询问题之分布式查询执行过程中的数据分发如何解决
114 1
|
8月前
|
SQL 关系型数据库 分布式数据库
利用 PolarDB PG 版向量化引擎,加速复杂 SQL 查询!完成任务领发财新年抱枕!
利用 PolarDB PG 版向量化引擎,加速复杂 SQL 查询!完成任务领发财新年抱枕!
209 14
|
关系型数据库 Serverless 分布式数据库
ICDE’24 | 中国企业首获最佳论文,详解PolarDB Serverless如何在0.5秒内实现跨机迁移
数据库领域顶会 ICDE 2024于5月13-17日在荷兰乌特勒支(Utrecht, Netherlands)举办。ICDE (The International Conference on Data Engineering) 与VLDB、SIGMOD被公认为是国际数据管理领域三大顶级学术会议,此次在荷兰召开的ICDE 2024大会,共吸引北京大学、清华大学、浙江大学、MIT、斯坦福等机构,以及谷歌、微软、阿里云、华为、字节等公司的近1000名人员参会,共同探讨AI、数据库、数据处理领域的前沿技术问题。

热门文章

最新文章

下一篇
日志分析软件