本文将详细介绍PolarDB MySQL数据库引擎内核模块的更新日志和全部的功能特性。
PolarDB数据库引擎在PolarDB架构中的位置如下图所示。

更多关于PolarDB产品架构及特点,请参见产品架构。
PolarDB数据库引擎内核特性
功能特性 | 5.6 | 5.7 | 8.0 | |
---|---|---|---|---|
DDL物理复制优化 | 不支持 | 不支持 | 支持(内核版本需为8.0.1.1.10或以上) | |
并行DDL | 不支持 | 不支持 | 支持(内核版本需为8.0.1.1.7或以上) | |
Fast Query Cache | 不支持 | 不支持 | 支持(内核版本需为8.0.1.1.5或以上) | |
Statement Outline | 不支持 | 支持(内核版本需为5.7.1.0.2或以上) | 支持(内核版本需为8.0.1.1.1或以上) | |
ROLLUP | 不支持 | 不支持 | 支持(内核版本需为8.0.1.1.0或以上) | |
表回收站(Recycle Bin) | 不支持 | 不支持 | 支持(内核版本需为8.0.1.1.2或以上) | |
透明数据加密TDE | 支持(内核版本需为5.6.1.0.21或以上) | 支持(内核版本需为5.7.1.0.3或以上) | 支持(内核版本需为8.0.1.1.1或以上) | |
大查询优化(Parallel Query) | 并行查询(Parallel Query) | 不支持 | 不支持 | 支持(内核版本需为8.0.1.0.5或以上) |
Hash Join的并行执行 | 不支持 | 不支持 | 支持(内核版本需为8.0.2.1.0或以上) | |
Semi-Join的并行执行 | 不支持 | 不支持 | 支持(内核版本需为8.0.1.1.2或以上) | |
通过Hint控制 | 不支持 | 不支持 | 支持(内核版本需为8.0.1.0.5或以上) | |
高并发优化 | Statement Concurrency Control | 支持(内核版本需为20200601或以上) | 不支持 | 支持(内核版本需为8.0.1.1.7以上) |
Inventory Hint | 不支持 | 不支持 | 支持(内核版本需为8.0.1.1.1或以上) | |
Statement Queue | 支持(内核版本需为20200616或以上) | 不支持 | 支持(内核版本需为8.0.1.1.1或以上) | |
热点行优化(适用于秒杀业务场景)。 | 支持(内核版本需为20200601或以上) | 不支持 | 支持(内核版本需为8.0.1.1.10或以上) | |
线程池(Thread Pool)。 | 支持(内核版本需为20200423以上) | 不支持 | 支持(内核版本需为8.0.1.1.1或以上) |
查询版本号
- 针对PolarDB MySQL8.0,请使用以下命令查询具体的版本号。
- 若您的集群创建时间在2020年2月5日之后,请使用如下命令:
show variables like "%polardb_version%";
- 若您的集群创建时间在2020年2月5日或之前,请使用如下命令:
show variables like '%rds_release_date%';
登录PolarDB控制台后,您可以在目标集群的基本信息页查看集群的创建时间。
- 若您的集群创建时间在2020年2月5日之后,请使用如下命令:
- 针对PolarDB MySQL5.6,请使用以下命令查询具体的版本号。
show variables like '%rds_release_date%';
说明 关于PolarDB数据库引擎版本号的详细说明,请参见数据库引擎版本号说明。
PolarDB MySQL 8.0发布日志
注意 8.0.2版本目前正在公测中,可能存在若干稳定性风险,不承诺服务等级协议。
PolarDB MySQL 8.0支持如下版本:
Minor version | Revision version | 发布日期 | 完全兼容的MySQL小版本 | 发布概述 |
---|---|---|---|---|
8.0.2.x
公测中 |
8.0.2.1.4 | 20201201 | 8.0.18 | 支持官方MySQL 8.0.20的Index Hints功能,详情请参见Index Hints。 |
8.0.2.1.3 | 20201026 | 8.0.18 |
|
|
8.0.2.1.2 | 20200927 | 8.0.18 | 全面支持最新的火山模型迭代执行器。 | |
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.10 | 20210112 | 8.0.13 | |
8.0.1.1.9 | 20201218 | 8.0.13 | 取消将SPM 和PLAN 设置为关键字。
|
|
8.0.1.1.8 | 20201209 | 8.0.13 |
|
|
8.0.1.1.7 | 20201116 | 8.0.13 |
|
|
8.0.1.1.6 | 20200921 | 8.0.13 |
|
|
8.0.1.1.5 | 20200819 | 8.0.13 |
|
|
8.0.1.1.4 | 20200704 | 8.0.13 |
|
|
8.0.1.1.3 | 20200529 | 8.0.13 | 增强并行查询的功能。 | |
8.0.1.1.2 | 20200409 | 8.0.13 |
|
|
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.4(20201201)
类别 说明 新增功能&性能优化 支持官方MySQL 8.0.20的Index Hints功能。 问题修复 修复Hash Join并行的一个稳定性问题。 修复统计信息中关于每个索引key对应行数估算错误的问题。 修复并行扫描共享临时表时,处理空数据出现错误的问题。 修复官方REGEXP_REPLACE函数处理数据出现错误的问题。 修复官方对于复杂查询中包含子查询常量的崩溃问题。 修复filesort返回错误数据的问题。 - 8.0.2.1.3(20201026)
类别 说明 新增功能&性能优化 对Hash Join的代价估算模型进行增强。 支持并行Hash Join,即Build和Probe阶段的并行。 问题修复 修复并行执行计划中并行分区数量错误显示的问题。 修复并行子查询的一个异常崩溃问题。 修复在并行查询中使用RAND() 函数时,多个工作线程不能产生随机结果的问题。 - 8.0.2.1.2(20200927)
类别 说明 新增功能&性能优化 PolarDB并行全面支持最新的火山模型迭代执行器。 - 8.0.2.1.1(20200826)
类别 说明 新增功能&性能优化 优化集群的写性能。 问题修复 修复内存泄漏问题。 - 8.0.2.1.0(20200722)
类别 说明 新增功能&性能优化 EXPLAIN支持并行计划的展示,支持通过FORMAT=TREE查看并行的执行计划树。 并行查询支持哈希连接,增强了无索引的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.10(20210112)
类别 说明 新增功能&性能优化 新增支持 Group By
的隐式排序功能,与PolarDB MySQL 5.7的行为保持一致。新增当存在Blob字段时禁用并行查询的功能。 新增只读节点上自动更新语句级并发控制缓存信息的功能。 新增热点行优化功能,详情请参见热点行优化。 新增支持DDL物理复制优化,详情请参见DDL物理复制优化。 新增当计算下推时快速反向遍历的功能。 问题修复 修复当只读节点升级为主节点时出现的系统表丢失的问题。 修复开启并行查询后,使用范围查询时会导致评估扫描行数过多的问题。 修复当字段类型为BIT时,聚合查询的结果为整型的问题。 修复使用枚举字段后,通过SELECT DISTINCT查询返回的结果不正确的问题。 修复使用EXISTS条件的并行查询结果出现异常的问题。 修复某些情况下只读节点重启失败的问题。 修复当只读节点执行DDL时,因外键关联表在打开表时把正在执行的DDL表也重新打开,导致数据字典中表信息异常的问题。 修复因主备切换后未正确设置节点重启标志,导致全文索引查询失败的问题。 修复因MDL锁导致只读节点上日志应用线程被阻塞的问题。 修复因释放的内存被复用导致主备切换后,新的主节点不可用的问题。 修复因 polar.info
数据问题导致所有节点不可用的问题。修复分区表自增列异常的问题。 修复主节点出现Redo log被覆盖写导致数据出错的问题。 修复当主节点等待MDL锁时,主节点不可用的问题。 修复在使用透明数据加密(TDE)时的相关问题。 修复在执行Lock Table并开启表回收站功能时出现集群不可用的问题。 修复主节点在执行DDL时出现死锁的问题。 修复线程池和连接控制无法同时生效的问题。 - 8.0.1.1.9(20201218)
类别 说明 新增功能&性能优化 取消将 SPM
和PLAN
设置为关键字,避免出现因表名包含这两个词而无法操作的问题。 - 8.0.1.1.8(20201209)
类别 说明 新增功能&性能优化 执行计划管理器新增多计划模式。 新增系统变量rds_ap_threshold参数,来阻拦优化器评估扫描记录数太多的请求。 提升了主节点的脏页落盘效率。 新增Redo多分片写入机制。 问题修复 修复并行查询执行过程中出现MDL key空指针的问题。 修复当创建并线线程缓存时出现查询失败的问题。 修复并行查询MRR(Multi-Range Read)返回结果异常的问题。 - 8.0.1.1.7(20201116)
类别 说明 新增功能&性能优化 提升了JOIN查询等场景中,被驱动表并行扫描的效率。 新增支持在关闭Binglog情况下,依然能够清理残留的Binglog文件。 新增Slave节点物理复制断开自动重连检查机制,避免出现长时间的物理复制断开。 提升了主节点和只读节点间的切换效率。 支持快速启动包含大量表的集群,方便快速扫描表数据文件。 问题修复 修复在获取 trx->wait_lock
的类型时出现集群崩溃的问题。修复在打开多队列Simulated AIO时,AIO线程存在数量上限的问题。 修复当查询索引遇到初始化查询失败时,无法直接结束查询的问题。 修复Slave节点在SMO(Split Merge Operation)过程中,当前游标的Next Page指向了一个不存在的Page的问题。 修复只读节点会读取到已被主节点覆盖的日志信息的问题。 修复因Redo日志中时间戳间隔过大导致清理Redo文件失败的问题。 修复释放MDL锁时未清除相关缓存中表缓存信息的问题。 - 8.0.1.1.6(20200921)
类别 说明 新增功能&性能优化 提升了SPM(SQL plan manager)和并行查询的兼容性。 提高了并行查询归并排序的效率。 支持删除操作的计算下推工作。 支持PolarDB Commit Timestamp(CTS)功能。 问题修复 修复 pq_optimize_switch
描述不正确的问题。修复子查询不能被稳定执行的问题。 - 8.0.1.1.5(20200819)
类别 说明 新增功能&性能优化 当只读节点和主节点建立复制关系时,新增主节点是否需要立即执行checkpoint策略的功能。 支持简单的范围查询和计算下推工作。 PFS(Polar file system)文件系统新增pfs_remount功能,避免了因文件未关闭导致无法挂载PFS文件的问题。 解决了只读节点上由于Parse线程强制停顿造成的性能瓶颈问题,提升了物理复制过程中数据同步的效率。 优化了多连接场景下的Early Lock Release性能,多连接场景下的集群性能提升至原来的10倍。 问题修复 修复只读节点在连接主节点失败后的不可用问题。 修复在使用全文索引并执行DDL查询语句后,会导致的只读节点在主备切换后不可用问题。 修复执行UNDO TRUNCATE命令后导致的无法进行purge binlog问题。 修复只读节点和主节点间统计信息不一致的问题。 - 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.7发布日志
PolarDB MySQL 5.7支持如下版本:
发布日期 | Revision version | 完全兼容的MySQL小版本 | 发布概述 |
---|---|---|---|
20201117 | 5.7.1.0.4 | 5.7.28 | 修复一些已知问题。 |
20201021 | 5.7.1.0.3 | 5.7.28 |
|
20200828 | 5.7.1.0.2 | 5.7.28 | 修复一些已知问题。 |
20200730 | 5.7.1.0.1 | 5.7.28 | 修复一些已知问题。 |
- 5.7.1.0.5(20201231)
类别 说明 问题修复 修复主节点修改密钥后,在只读节点上进行查询时,只读节点会崩溃的问题。 修复在只读节点上分析分区表时,只读节点会崩溃的问题。 修复主备切换后,由于表空间不一致导致新的主节点会崩溃的问题。 - 5.7.1.0.3(20201021)
类别 说明 新增功能&性能优化 支持透明数据加密TDE功能。 问题修复 修复只读节点和主节点间统计信息不一致的问题。 修复SHOW PROCESSLIST返回结果会显示错误信息的问题。 - 5.7.1.0.2(20200828)
类别 说明 问题修复 修复从RDS MySQL 5.7迁移后不能扩展.IDB文件的问题。 禁止在主备切换时执行CF_STATUS_COMMAND相关命令,以保证主备切换的正常运行。 修复因后台更新统计信息线程和Truncate逻辑出现Page争用,导致主节点不可用的问题。 - 5.7.1.0.1(20200730)
类别 说明 问题修复 修复当部分PolarDB专属命令缺少对应命令数字时,导致maxscale不能正常访问的问题。 修复通过从回收站恢复方式创建的集群由于找不到表空间,导致集群不可用的问题。 修复执行 promote replica
命令时,有文件未关闭导致unmout PFS文件崩溃的问题。
PolarDB MySQL 5.6发布日志
PolarDB MySQL 5.6支持如下版本:
版本号 | 发布日期 | 完全兼容的MySQL小版本 | 发布概述 |
---|---|---|---|
5.6.1.0.22 | 20201225 | 5.6.16 | PFS新增支持目录索引,以提升海量表场景下的集群性能。 |
5.6.1.0.21 | 20201112 | 5.6.16 | 支持透明数据加密TDE和库表恢复功能。 |
5.6.1.0.20 | 20201027 | 5.6.16 | 提升某些情况下物理复制的效率。 |
20200831 | 20200922 | 5.6.16 | PFS支持本地盘,支持挂载可写快照及性能优化。 |
20200616 | 20200701 | 5.6.16 | 支持Statement Queue,提供针对语句的排队机制。 |
20200601 | 20200605 | 5.6.16 | 支持Statement Concurrency Control提升并发性能。 |
20200507 | 20200513 | 5.6.16 | 优化内部数据结构导致的性能瓶颈问题,优化模拟IO系统。 |
- 5.6(5.6.1.0.22)
类别 说明 新增功能&性能优化 PFS新增支持目录索引,以提升海量表场景下的集群性能。 问题修复 修复某些情况下,主备切换后节点角色不对导致集群不可用的问题。 修复Statement Queue未初始化导致只读节点崩溃的问题。 修复新增系统表在主备切换后没有初始化的问题。 修复线程池和连接控制(Connection Control )功能会同时开启的问题。 修复全文索引存在重复ID导致集群不可用的问题。 修复某些情况下只读节点查询失败的问题。 修复日志复制线程退出异常造成复制中断的问题。 - 5.6(5.6.1.0.21)
类别 说明 新增功能&性能优化 支持库表恢复功能。 支持透明数据加密TDE功能。 PFS支持单表恢复所需的多盘挂载能力。 优化在物理复制中AHI(Adaptive Hash Index)锁的资源占用问题。 问题修复 修复SELECT语句在使用DYNAMIC RANGE AND INDEX MERGE情况下出现OOM(Out Of Memory)的问题。 修复某些情况下创建或删除账号导致集群崩溃的问题。 修复某些情况下无法重连STANDBY节点的问题。 修复当主备切换发生异常时导致集群无法启动的问题。 修复某些情况下Binlog线程状态不正确的问题。 - 5.6(5.6.1.0.20)
类别 说明 新增功能&性能优化 提升某些情况下物理复制的效率。 问题修复 修复某些情况下执行 CREATE TABLE... SELECT
命令会导致集群崩溃的问题。修复存储过程中,因派生表使用次数过多导致内存泄露的问题。 修复使用按时间点恢复数据时,恢复时间不准或恢复失败的问题。 修复PolarFS异常日志输出过多的问题。 修复关闭外键检查后,执行DDL导致表丢失的问题。 修复同时TRUNCATE多个临时表导致只读节点崩溃的问题。 - 5.6(20200831)
类别 说明 新增功能&性能优化 PFS支持本地盘,支持挂载可写快照及性能优化。 问题修复 修复某些情况下使用Statement Queue功能会导致集群崩溃的问题。 修复Corefiles占用过多空间的问题。 修复只读节点和主节点间统计信息不一致的问题。 修复只读节点切换为主节点后,其它只读节点无法连接新主节点的问题。 修复只读节点和主节点间全文索引缓存不一致的问题。 - 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升级。
在文档使用中是否遇到以下问题
更多建议
匿名提交