强大的PolarDB-开启全新的数据库体验 (强大的魄力的意思?)

文章编号:11086 更新时间:2024-03-16 分类:互联网资讯 阅读次数:

资讯内容

优化器技术被公认为数据库领域中最有挑战性的技术之一,同时也是对数据库性能影响最大的一个模块。优化器直接影响SQL具体如何运行的执行计划,好的执行计划可以在毫秒内完成计算,而坏的执行计划则可能是分钟级或小时级别,两者性能可以相差成千上百倍。文章将会为大家介绍PolarDB-X优化器的技术选型理由、技术架构与核心特性,帮助大家更深入地了解PolarDB-X优化器。

从技术历史发展的角度看,优化器技术演进经历了大致四个阶段:正式基于上面的考虑,PolarDB-X优化器被设计成一款以Volcano/Cascades模型作为框架的基于代价的优化器,它可以为每一条SQL构造出搜索空间,并根据数据的统计信息,基数估计,算子代价模型为搜索空间中的执行机计划估算出执行所需要的代价(CPU/MEM/IO/NET),最终选出代价最小的执行计划作为SQL的具体执行方式。

我们知道PolarDB-X作为一款云原生分布式数据库,具有在线事务及分析的处理能力(HTAP)、计算存储分离、全局二级索引等重要特性,PolarDB-X优化器在这些特性中扮演了非常核心的角色。

优化器架构 强大的PolarDB开启全新的数据库体验

优化器接受到SQL后会将它解析、转换成由关系代数算子组成的逻辑执行计划。整个PolarDB-X优化器中的具体优化手段都通过转换规则(TransformationRule)来表达,转换规则会匹配特定结构的关系代数算子并将其转成等价的算子。PolarDB-X的优化器的优化阶段主要分为三个:此外还有统计信息、代价模型、基数估计(CardinalityEstimation)等重要模块,好的优化效果依赖于准确的数据统计信息,PolarDB-X维护了丰富的统计信息用于辅助优化器,我们会为每张表维护行数,直方图,列长度,NDV值等统计信息。PolarDB-X的代价模型充分考虑了计算存储分离架构下的算子执行代价,与传统数据库相比会更精细地考虑网络的代价。

核心特性

在HTAP混合负载处理方面,PolarDB-X提供智能路由的能力。优化器在HTAP的负载识别中起了关键的作用。优化器会基于代价分析出查询的CPU,内存,IO,网络等核心资源消耗量,将请求区分为OLTP与OLAP请求。OLTP请求被路由至主副本执行,相比于传统的读写分离方案能够提供更低的延迟。而分析出的OLAP请求将会通过MPP并行优化阶段,生成多机分布式的执行计划,下发至只读计算集群计算,访问只读副本,提供物理隔离,同时可以利用只读副本一致性读能力,保证强一致读。通过智能路由,用户可以非常透明地使用PolarDB-X同时处理OLTP及OLAP的诉求。

计算下推

PolarDB-X支持PartitionAware的计算下推。我们知道在计算与存储分离的架构下,我们获得了几乎无限弹性扩展计算节点的scaleout能力,但代价是计算与存储间的网络交互开销。为了尽可能避免这一开销,可以通过计算下推,减少网络交互,计算离数据更近,计算效率获得提升,因此计算下推成了非常重要的优化手段。PolarDB-X用户大量使用拆分表(及广播表),将数据根据拆分方式打散至不同的分片上。PolarDB-X可以基于代价充分考虑存储(如存储的计算模型)及数据(是否具有索引)等特性,将查询中的部分计算(如:Join,Agg,Sort)下推至存储层进行计算。以TP场景下的Join的下推为例:如果Join不下推,我们会面临一个网络Lookup,通过网络Lookup的性能会劣于本地的磁盘Lookup,而通过计算下


PolarDB 数据库的优点有哪些?

PolarDB 数据库的优点有很多,以下是一些主要的优点:- PolarDB 100%兼容MySQL,使用MySQL的应用程序不需要修改一行代码,即可使用POLARDB。 - PolarDB 是一个多节点集群,集群中有一个Writer节点(主节点)和多个Reader节点,他们之间节点间的数据同步是通过异步复制实现的,这样可以保证数据的一致性和可用性。 - PolarDB 采用了存储计算分离架构,利用了软硬件结合的优势,为用户提供具备极致弹性、高性能、海量存储、安全可靠的数据库服务。

polardb和mysql对比

架构不同,性能不同。 1、架构不同:PolarDB是一种分布式关系型数据库,底层采用了多副本共享存储架构,而MySQL则是一种传统的关系型数据库,底层采用了基于磁盘的存储架构。 2、性能不同:PolarDB的多副本共享存储架构可以提供更高的性能和更快的响应时间,同时还支持自动扩容和缩容,而MySQL的性能则主要取决于硬件配置和数据库优化。

polardb和oceanbase

您要问的是polardb和oceanbase的区别吗?架构不同、存储引擎不同、数据分布策略不同。 1、PolarDB是基于分布式存储系统的关系型数据库。 OceanBase是基于分布式存储系统的分布式关系型数据库。 2、PolarDB使用的是基于分布式存储引擎的存储架构。 OceanBase使用的是混合存储引擎,可以支持多种存储引擎。 3、PolarDB采用的是分布式存储系统中的分区分片策略。 OceanBase采用的是数据复制策略。

标签: 数据库数据库性能SQL

本文地址: https://yihaiquanyi.com/article/1286a0b45b36cc958bf6.html

上一篇:极光数据库上游的散布式数据库处置方案极光...
下一篇:极地数据库开创性的高性能解决方案极地资源...

发表评论