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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
2月前
|
存储 关系型数据库 分布式数据库
PolarDB 并行查询问题之分布式查询执行过程中的数据分发如何解决
PolarDB 并行查询问题之分布式查询执行过程中的数据分发如何解决
42 1
|
2月前
|
关系型数据库 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、数据库、数据处理领域的前沿技术问题。
|
2月前
|
关系型数据库 MySQL 分布式数据库
PolarDB 并行查询问题之大数据量的实时分析查询挑战如何解决
PolarDB 并行查询问题之大数据量的实时分析查询挑战如何解决
29 2
|
2月前
|
关系型数据库 MySQL 分布式数据库
PolarDB 并行查询问题之处理类似JOIN和GROUP BY的复杂查询如何解决
PolarDB 并行查询问题之处理类似JOIN和GROUP BY的复杂查询如何解决
12 1
|
2月前
|
关系型数据库 MySQL 分布式数据库
PolarDB 并行查询问题之帮助处理实时性分析查询如何解决
PolarDB 并行查询问题之帮助处理实时性分析查询如何解决
35 1
|
2月前
|
关系型数据库 MySQL 分布式数据库
PolarDB 并行查询问题之提升对复杂查询的处理能力如何解决
PolarDB 并行查询问题之提升对复杂查询的处理能力如何解决
13 1
|
2月前
|
存储 SQL 运维
“震撼发布!PolarDB-X:云原生分布式数据库巨擘,超高并发、海量存储、复杂查询,一网打尽!错过等哭!”
【8月更文挑战第7天】PolarDB-X 是面向超高并发、海量存储和复杂查询场景设计的云原生分布式数据库系统
91 1
|
3月前
|
关系型数据库 MySQL 分布式数据库
PolarDB产品使用问题之查询数据库时出现报错,是什么原因
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
3月前
|
存储 运维 关系型数据库
PolarDB产品使用问题之在删除主节点上的表后尝试查询归档表遇到问题,该如何解决
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
3月前
|
SQL 关系型数据库 MySQL
PolarDB产品使用问题之搜索和查询冷数据如何照时间范围进行查询
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
下一篇
无影云桌面