8.0.1和8.0.2版功能对比

PolarDB for MySQL8.0.1版和8.0.2版在功能上存在一些差异,包括Warm Buffer Pool、Hash Join、弹性并行查询、执行器增强、优化器增强、分区表、多主集群(库表)、Blink Tree等方面的差异。本文介绍这两个版本的功能区别,以便您基于业务场景选择合适的版本。

版本选择建议

目前8.0.1和8.0.2均为正式发布的LTS版本,8.0.1完全兼容对应社区MySQL-8.0.13及更低的版本,8.0.2完全兼容对应社区MySQL-8.0.18及更低的版本。如下详细列举了两个版本的功能区别,您可以根据业务场景需要选择合适的版本。

功能差异对比

分类

功能特性

功能描述

8.0.1版

8.0.2版

数据可靠性/异地灾备

多节点部署架构

数据分布在两个可用区,每个可用区有3个副本,总共有6个副本。当主可用区故障时,可以在几分钟内快速恢复到备可用区。但由于两个可用区之间数据异步复制,在强制切换时,可能会丢失1秒以内的数据。

支持

支持

多可用区部署架构

数据库横跨三个可用区部署,其中两个可用区存储了全量的数据,称为“数据可用区”。当数据可用区故障时,系统可以自动切换到备用数据可用区,且数据0丢失。当日志可用区故障时,不影响业务正常运行。

支持

支持

全球数据库GDN

全球数据库网络是由分布在全球不同地域(Region)内的多个数据库组成的一张网络。网络中所有PolarDB的数据保持同步,可以在全球范围内提供本地读取服务。跨Region复制延迟小于2秒,可以满足大部分本地访问的需求。

支持

支持

无感秒切

在RW出现故障时,数据库内核可以迅速检测到RW的故障。热备节点可以迅速切换成RW节点,而且立刻提供和原RW一样的性能(热备节点有热Buffer Pool)。

支持

支持

企业版、标准版单节点部署

无RO、无Standby节点,用于个人学习、微型网站、中小企业的入门级产品。

支持

支持

扩展性

一写多读

一个数据库集群最多支持16个节点,其中1个写节点,15个只读节点,访问一个地址,内部自动读写分离。

支持

支持

高性能全局强一致读

一写多读下提供高性能的RO。

支持

支持

多主集群(库表)

一个数据库集群每个节点均可写,可动态秒级扩缩容。

支持

支持

Serverless

Serverless数据库能够使得数据库集群资源随客户业务负载动态弹降,将客户从复杂的业务资源评估和运维工作中解放出来。

支持

支持

可用性/稳定性/业务连续性

连接保持

主备切换、升级配置、升级版本的时候,95%的连接不中断。

支持

支持

只读endpoint优化

只读endpoint支持基于SQL的负载均衡策略;只读endpoint基于SQL负载能够支持IMCI、连接保持等功能。

支持

支持

事务保护

主备切换、升级配置、升级版本时,大事务无需等待完成或强制回滚。

支持

支持

Warm Buffer Pool

通过提前预热备库的内存,可以避免主备切换之后新的主库负载衰退的问题,提升数据库稳定性。

不支持

支持

连接池

不论是PHP短连接并发过高,还是Java等有连接池的微服务等架构导致建立的长连接过多,均可以通过PolarDB连接池来解决。

支持

支持

热点行优化

PolarDB在数据库内核层进行了创新性的优化,不但能够自动识别热点行更新请求,而且将一定时间间隔内对同一数据行的更新操作进行分组,不同分组采用流水线的方式并行处理,通过这些优化,极大地提升了系统的性能。

支持

支持

SQL Outline

在生产环境中,数据库受统计信息、运行状态、优化器改动或者能力限制,SQL语句的执行计划可能不是最优的,同时可能会发生变化,导致SQL执行效率差或者不稳定。通过Outline,可以用不修改业务SQL的方式,固定SQL语句的执行计划。

支持

支持

SQL 限流

应用侧的并发陡增,经常导致数据库并发过高从而影响性能。这种情况下,一般都是少量的重复SQL在执行。PolarDB可以限制某一类SQL同时执行的个数,来避免单条SQL压垮整个数据库。

支持

支持

Fast Startup

快速启动优化。

支持

支持

RO规格不同

支持不同规格的只读节点。

支持

支持

闪回查询

通过闪回查询(Flashback Query)功能,您可以高效查询集群、数据库、数据表在过去某个时间点的信息。

支持

支持

大吞吐写入/更新

CTS事务系统

PolarDB重构了InnoDB的事务系统,由原来的基于活跃事务数据的事务系统,变为基于提交时间序(CTS)的事务系统,大幅度提升了读写混合场景下的性能,同时支持了全局严格强一致/MPP等功能的跨节点事务一致性。

支持

支持

全局一致性(高性能模式)

PolarTrans事务系统利用提交时间戳技术CTS和RDMA网络,在内核层面提供全局一致性(高性能模式)服务,保证发往集群任意副本的读请求都可以获得强一致性的结果。

支持

支持

REDO IO Cache 优化

计算存储针对云盘IO特征的关键路径优化,增强业务吞吐量。

支持

支持

Blink Tree

降低B+Tree index锁冲突,大幅提高structure modification operations(SMO)并行度及B+Tree并发读写性能。

支持

支持

DDL

DDL性能优化

包括秒级加字段、并行DDL、DDL IO性能优化、Faster TRUNCATE/DROP TABLE和针对在DDL IO路径上的优化,包括DDL预读、DDL异步IO和DDL多路归并排序。

支持

支持

DDL稳定性优化

包括非阻塞DDL、DDL物理复制优化、并行元数据锁同步、防止只读节点上长事务阻塞DDL操作。

支持

支持

DDL安全性优化

PolarDB支持回收站(Recycle Bin)功能,用于将删除的表临时转移到回收站,并且可以自定义删除表的保留时间,方便找回数据。

支持

支持

HTAP & 复杂/分析查询

列存索引

面向OLAP场景大数据量复杂查询。通过列存索引,PolarDB for MySQL版实现了一体化的实时事务处理和实时数据分析的能力,成为一站式HTAP数据库产品解决方案。通过一套数据库系统,即可满足业务的OLTP及OLAP需求。

支持

支持

Hash Join

支持Hash Join,基于代价选择Hash Join而不是社区原有的原始替换方案,支持Parallel Hash Join,并实现了执行中的动态Bloom Filter构建,进一步提升性能。

不支持

支持

单机并行查询

让一条Query可以运行在多个CPU核上,利用并行化的能力加速,TPC-H中70%以上的Case,提速平均超过10倍。

支持

支持

弹性并行查询(Elastic Parallel Query)

打通节点间的计算资源,突破单实例内多线程并行的扩展瓶颈,降低单点争抢,并实现资源的均衡利用。基于多节点分组能力实现业务负载的物理隔离,结合弹性降低业务成本。

不支持

支持

执行器增强

Partial Result Cache、Bloom Filter等算子能力增强。

不支持

支持

优化器增强

join谓词下推,having谓词下推。

不支持

支持

outer join消除。

支持

支持

IN-list 转semi-join。

不支持

支持

基于Window函数和基于Derived的子查询解关联;基于代价的优化器改写。

不支持

支持

计划缓存 (Auto Plan Cache)

缓存SQL语句的执行计划信息,以缩短查询优化时间,提升SQL语句的查询性能。

支持

支持

SQL Trace/Detail

PolarDB for MySQL提供的SQL Trace功能,用于跟踪SQL语句的执行信息,如:执行计划和执行统计信息(包括扫描行数、执行时间等),可以帮助您快速地发现因执行计划变更而引发的性能变化,并统计当前集群中占用内存最多的查询语句。

支持

支持

统计信息增强

通过用户表更新量,监控统计信息状态,按需重新收集统计信息。此外支持定时定点启动、按需启动、按需取消等功能。减少因为统计信息更新对用户实例带来的非预期压力。

支持

支持

查询结果缓存

针对社区Query Cache在并发、内存管理、可能导致系统性能大幅下降上的不足,Fast Query Cache支持高并发、内存动态回收、自适应缓存。

支持

支持

联邦引擎支持

支持跨实例访问,在实例A中用SQL查询远程实例B中的数据,支持远程OSS的csv/orc访问。

支持

支持

分区表

分区表能力增强

对标Oracle支持全量二级分区,INTERVAL间隔分区,混合分区,List Default HASH,分区性能增强等。

不支持

支持

分区部分索引

支持不同分区创建不同索引。

不支持

支持

全局二级索引(GSI)

PolarDB for MySQL引擎支持在分区表上创建全局二级索引(Global Secondary Index,简称GSI)。使用全局二级索引可以实现透明分区表,即您可以像使用单表一样使用分区表,大大减少分区键对分区表的使用限制。

不支持

支持

数据压缩/归档/加密

表级压缩

对于指定的表,支持显著优于MySQL官方的压缩能力,通过压缩降低数据的存储成本。

支持

支持

L2PC

Bufferpool 二级缓存。

不支持

支持

XEngine高压缩引擎

提供了超大存储容量,可以同时作为多个业务历史数据的汇聚地,以方便对所有历史数据进行集中存储和管理,支持XEngine和InnoDB混启动。

支持

支持

冷数据管理

为了降低数据存储成本,PolarDB for MySQL版支持将低频使用的冷数据归档到OSS对象存储中。

支持归档表

支持归档分区和表

其他

PolarDB for AI

PolarDB for AI功能通过一系列MLOps和内置的模型解决了数据、特征和模型的割裂状态,实现了基于数据库的数据智能的一站式服务。

支持

支持

国产化兼容/性能优化

ARM兼容性/性能优化。

支持

支持

RO支持创建用户内存临时表

可以在RO中支持memory/myisam storage的用户临时表。

支持

支持

透明数据加密(TDE)

透明数据加密 (TDE) 技术帮助保护用户数据库。

支持

支持

Readable Protobuf

针对存储在数据库中经过Protobuf序列化的Blob类型的字段,您可以在对应的字段上配置Protobuf schema,并通过可视化函数PROTO_TO_JSON(blob_field)来读取数据,也可以使用JSON_EXTRACT()函数来抽取数据中的部分信息用于创建索引或者虚拟列。

支持

支持

版本兼容能力

对下游数据库BINLOG同步新增语法的兼容能力。

支持

支持