本文将详细介绍PolarDB MySQL数据库引擎内核模块的更新日志和全部的功能特性。

PolarDB数据库引擎在PolarDB架构中的位置如下图所示。

1

更多关于PolarDB产品架构及特点,请参见产品架构

PolarDB数据库引擎内核特性

分类 功能特性 5.6 8.0
OLTP性能 支持热点行优化(适用于秒杀业务场景),详情请参见热点行优化 支持(内核版本需为 20200616以上) 不支持
支持线程池(Thread Pool) 支持(内核版本需为 20200423以上) 支持(内核版本需为 8.0.1.1.1或以上)
OLAP性能 支持并行查询(Parallel Query) 不支持 支持(内核版本需为 8.0.1.0.5或以上)
并行查询支持半连接(SEMIJOIN),详情请参见semi-join的并行执行 不支持 支持(内核版本需为 8.0.1.1.2或以上)
并行查询支持联合(UNION)。 不支持 支持(内核版本需为 8.0.1.1.3或以上)
并行查询支持哈希连接(HASHJOIN),详情请参见并行查询中的hash join 不支持 支持(内核版本需为 8.0.2.1.0或以上)
安全 支持表回收站(Recycle Bn),避免出现因DROP误删导致数据丢失的情况,详情请参见表回收站(Recycle Bin) 不支持 支持(内核版本需为 8.0.1.1.2或以上)

查询版本号

  • 针对PolarDB MySQL8.0,请使用以下命令查询具体的版本号。
    • 若您的集群创建时间在2020年2月5日之后,请使用如下命令:
      show variables like "%polardb_version%";
    • 若您的集群创建时间在2020年2月5日或之前,请使用如下命令:
      show variables like '%rds_release_date%';

    登录PolarDB控制台后,您可以在目标集群的基本信息页查看集群的创建时间

    创建时间
  • 针对PolarDB MySQL5.6,请使用以下命令查询具体的版本号。
    show variables like '%rds_release_date%';
说明 关于PolarDB数据库引擎版本号的详细说明,请参见数据库引擎版本号说明

PolarDB MySQL 8.0发布日志

PolarDB MySQL 8.0支持如下版本:

Minor version Revision version 发布日期 完全兼容的MySQL小版本 发布概述
8.0.2.x 8.0.2.1.1 20200826 8.0.18 修复一些已知问题。
8.0.2.1.0 20200722 8.0.18
8.0.1.x 8.0.1.1.4 20200704 8.0.13
  • 支持并行DDL,提升DDL执行效率。
  • 支持Simulated AIO动态调整多队列的长度。
  • 支持全文检索(Full Text Search,FTS)缓存一致性。
8.0.1.1.3 20200529 8.0.13 增强并行查询的功能。
8.0.1.1.2 20200409 8.0.13
  • 支持表回收站,避免出现因DROP误删导致数据丢失的情况,详情请参见表回收站(Recycle Bin)
  • 优化临时表操作对性能的影响。
  • 增强并行查询的功能。
8.0.1.1.1 20200328 8.0.13
8.0.1.1.0 20200205 8.0.13
  • 增强并行代价估算模型。
  • 增强并行查询执行器线程调度能力。
8.0.1.0.6 20200101 8.0.13 修复一些已知问题。
8.0.1.0.5 20191203 8.0.13 增加并行查询的执行计划诊断信息,提升执行计划的易读性。
  • 8.0.2.1.1(20200826)
    类别 说明
    新增功能&性能优化 优化集群的写性能。
    问题修复 修复内存泄漏问题。
  • 8.0.2.1.0(20200722)
    类别 说明
    新增功能&性能优化 EXPLAIN支持并行计划的展示,支持通过FORMAT=TREE查看并行的执行计划树。
    并行查询支持哈希连接(HASHJOIN),增强了无索引的JOIN性能,详情请参见并行查询中的hash join
    支持Resource Manager功能,能够实现对CPU和内存资源的监控,详情请参见Resource Manager
    支持Performance Agent,能够实现MySQL实例内部各项性能数据的采集与统计,您可以通过直接查询内存表PERF_STATISTICS获取相关指标的性能数据,详情请参见Performance Agent
    支持热重启(Warm buffer pool),在Crash重启和升级时,Buffer Pool中的数据依然存在,大幅度加快重启速度,并保持重启后性能无衰减。
  • 8.0.1.1.4(20200704)
    类别 说明
    新增功能&性能优化 支持并行DDL,提升DDL执行效率。
    支持Simulated AIO动态调整多队列的长度。
    支持全文检索(Full Text Search,FTS)缓存一致性。
    WHERE条件中支持含有聚集函数的子查询,且若子查询支持基于索引的扫描,那么该子查询还可以支持并行执行。
    临时表和普通表一样支持进行lock mode检查。
    问题修复 修复当主节点降为备节点时,因部分DDL仍在复制中而导致的实例不可用问题。
    修复因为开启线程池导致的性能下降问题。
    修复purge binlog导致死锁的问题。
    修复若干内存泄漏的问题。
    修复若干在高可用场景中出现的问题。
  • 8.0.1.1.3(20200529)
    类别 说明
    新增功能&性能优化 增强安全性(如密码管理)。
    提升如下场景中并行查询(Parallel Query)的性能:
    • 增强GROUP BY、UNION、SELECT COUNT(*) FROM <table>场景中的并行查询性能。
    • 并行子查询中,执行计划使用了共享InnoDB临时表的场景。
    • 计划中使用VIEW/DERIVED TEMP TABLE的场景。
    • 并行查询支持定义临时表的场景, 但有如下限制:
      • 不支持临时表上不带条件的SELECT COUNT(*)
      • 不支持在Memory Engine临时表的并行。
    支持新版本的审计日志格式,增加了VIP信息。
    支持索引页面空闲比率控制,减少SMO概率和latch竞争,提升写入性能。
    支持多队列的模拟AIO,增强刷脏和写入性能。
    支持在core文件中不记录buffer pool的内容,降低core文件的大小,避免影响线上服务。
    问题修复 修复当达到TempTable最大内存限制的时候,原来逻辑中TempTable存储引擎会误报out-of-memory的错误,而不是回退到基于磁盘存储上的问题。
    修复当排序缓存(sort buffer size)参数设置过小时,在InnoDB全文搜索中使用ORDER BY会导致实例不可用的问题。
    修复在临时表出现同名列情况下,无法找到对应的正确Field的问题。
    修复并行查询中,当使用MAX/MIN函数结合GROUP BY并使用松散扫描数据时,无法被Kill的问题。
    修复故障切换时的若干问题。
    修复并行查询下的若干问题。
    修复使用SHOW BINARY LOGS命令可能会阻碍事务提交的问题。
  • 8.0.1.1.2(20200409)
    类别 说明
    新增功能&性能优化 支持基于字符串前缀的排序优化方法(即优先使用字符串前缀进行排序,如果前缀相同,再使用字符串的全长进行排序)。对长字符类型的列进行排序时,可以通过指定该列值最大不同的前缀长度来加速比较,减少排序时间。
    新增在如下场景中支持并行查询的能力:
    • 支持Range Cost的估算模型的并行。
    • 支持Temporary Table表的并行。
    • 支持Semijoin物化Lookup和Scan的策略下的并行。
    增加了3类可以被PolarDB智能路由用来支持连接保持功能的会话状态tracker;同时,tracker打开后可以跟踪会话中user variable的改变、临时表的创建和删除、SQL语句中的prepare和dealloction操作等。
    优化DDL过程中Drop AHI的性能,降低DDL对实例性能的影响。
    增加表回收站的功能,避免出现因误删导致数据丢失的情况。
    优化在大缓冲池临时表空间truncate的表现,降低临时表操作对实例性能的影响。
    问题修复 修复当聚合函数存在于IF函数中的场景下执行ROLLUP的问题。
    修复Blob类型在排序过程中的问题。
    修复并行中使用Prepare中包含聚合函数SQL的特定问题。
    修复并行查询下的若干问题。
    修复可能会清除过多redo日志的问题。
    修复RO节点上Redo日志的相关问题。
  • 8.0.1.1.1(20200328)
    类别 说明
    新增功能&性能优化 支持在子查询含有ROLLUP的场景中使用并行。
    支持语句并发控制功能。
    增加POLARDB_INDEX的Hint。
    优化主节点和只读节点同步延迟。
    支持线程池(Thread Pool)
    支持TDE keyring_rds插件。
    支持全球数据库(GDN)
    优化无锁事务系统, 优化读写性能。
    问题修复 修复并行查询下的若干问题。
    修复ONLINE DDL过程中统计信息可能为0的问题。
    优化用户态文件系统,加速实例启动。
    修复innodb_flush_method被设置为all_o_direct时可能会导致实例不可用的问题。
    修复事务提交放锁时可能会导致实例不可用的问题。
    修复慢日志truncate时可能会阻塞用户请求的问题。
    修复压缩页在RO上可能会导致实例不可用的问题。
    修复线程池可能会误杀复制连接的问题。
  • 8.0.1.1.0(20200205)
    类别 说明
    新增功能&性能优化 增强并行查询的能力,支持企业级分析ROLLUP函数的并行计算。
    增加优化器的估算模型能力(如增强条件过滤的选择率和对并行查询的代价估算模型),被执行的SQL可以根据Selectivity更准确地选择并行计划还是串行计划。
    支持对按照FIFO模式分配工作线程的并行工作线程进行统一管理,避免大量并行查询造成系统资源耗尽的问题。
    问题修复 修复并行查询的内存相关系列问题。
    修复并行查询下的若干不稳定问题。
  • 8.0.1.0.6(20200101)
    类别 说明
    问题修复 修复在主节点降为备节点时Binlog Index文件未关闭的问题。
    修复RO节点在访问已经被清除的Undo页时会出现实例不可用的问题。
    修复在RO节点进行主备切换时,后台线程访问到不存在表空间页面的问题。
    修复在实例关闭时由于日志线程已经退出之后还在写Redo日志导致的实例不可用问题。
  • 8.0.1.0.5(20191203)
    类别 说明
    新增功能&性能优化 Optimizer trace中支持并行查询的相关信息(例如您可以通过Optimizer trace的工具分析为何使用并行或者未使用并行的原因)。
    增加并行查询相关的Hint,支持通过SQL Hint的方式显性启用并行和指定并行度。
    支持在READ COMMITTED下INSERT..SELECT的并行扫描,您可以使用INSERT..SELECT语句将导入的数据加入到另一个表。
    问题修复 修复并行查询下的若干问题。
    修复在主备切换时,备节点升级为主节点时出现实例不可用的问题。
    修复在主备切换时因使用部分DDL语句引起故障的问题。
    修复锁限制导致报错too many connection error的问题。

PolarDB MySQL 5.6发布日志

PolarDB MySQL 5.6支持如下版本:

发布日期 完全兼容的MySQL小版本 发布概述
20200616 5.6.16 支持Statement Queue,提供针对语句的排队机制。
20200601 5.6.16 支持Statement Concurrency Control提升并发性能。
20200507 5.6.16 优化内部数据结构导致的性能瓶颈问题,优化模拟IO系统。
  • 5.6(20200616)
    类别 说明
    新增功能&性能优化 支持Statement Queue功能。
    优化RO和RW之间的复制延迟。
    支持复制LOCK TABLE时的MDL锁。
    问题修复 修复MDL锁复制中的问题。
    修复FTS INDEX创建在系统表的问题。
    修复热点更新优化的一些问题。
  • 5.6(20200601)
    类别 说明
    新增功能&性能优化 支持热点行更新优化,详情请参见热点行优化
    支持Statement Concurrency Control功能。
    问题修复 修复线程池(Thread Pool)带来的写性能下降的问题。
  • 5.6(20200507)
    类别 说明
    新增功能&性能优化 增加并发控制功能。
    增加一个参数控制索引页的空闲空间。
    优化Simulate aio。
    问题修复 修复bool flag类导致的性能退化问题。
    修复pfs_umount表没有关闭导致实例不可用的问题。

版本升级

  • DB Version和Minor Version升级

    PolarDB暂时不提供直接升级DB Version和Minor Version版本(如您无法将PolarDB MySQL 5.6版本直接升级到PolarDB MySQL 8.0版本,同时您也无法将PolarDB MySQL 8.0.1版本直接升级到8.0.2版本),但您可以通过DTS将数据从源版本迁移或同步到目标版本的实例完成升级,关于如何迁移或同步数据,请参见数据迁移或同步方案概览

  • Revision Version升级

    关于如何升级Revision Version版本,请参见Revision Version升级