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

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

1

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

PolarDB数据库引擎内核特性

分类 功能特性 5.6 8.0
OLTP性能 支持热点行优化(适用于秒杀业务场景),详情请参见热点行优化 支持(内核版本需为 20200616以上) 不支持
支持线程池(Thread Pool) 支持(内核版本需为 20200423以上) 支持(内核版本需为 8.0.1.1.1或以上)
支持Fast Query Cache,详情请参见Fast Query Cache 不支持 支持(内核版本需为 8.0.1.1.5或以上)
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或以上)
支持ROLLUP,详情请参见ROLLUP 不支持 支持(内核版本需为 8.0.1.1.0或以上)
安全 支持表回收站(Recycle Bin),避免出现因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升级