本文将详细介绍PolarDB MySQL版8.0.2版本的更新日志和全部的功能特性。
8.0.2.2.11.1
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | - 支持Schema_name为空的Statement Outline匹配所有与其Digest值相等的SQL语句。
- 新增参数
loose_group_by_compatible_sorting ,用于控制是否开启Group By排序兼容模式。
| 2023-02-21 |
问题修复 | - 修复在分区表上使用DDL语句时,可能会访问非法内存的问题。
- 修复手动和自动归档冷数据过程中会记录Binlog的问题。
|
8.0.2.2.11
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | - 当分区表达式包含自增列(AUTO INCREMENT)时,支持用户指定该列的值,并根据该指定的值进行分区裁剪。
- 创建LIST DEFAULT HASH分区表的
add partition 语法中支持使用without validation 选项来添加LIST分区 。
| 2023-02-20 |
8.0.2.2.10
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | - 手动归档冷数据支持
alter table engine 语法。通过Alter Table table_name engine = csv connection = 'default_oss_server' 命令可以指定冷数据表归档到OSS上。 - 普通表转换为分区表的语法增加
without validation 选项。语法如下:Alter table t1 partition by range(a) (partition p0 values less than (100), partition p1 values less than (200)) without validation 。 - 基于代价的计算支持将物化的
derived table 的外层连接条件,下推到derived table 内部。 - 支持将带有IN-List的谓词条件转换为临时表,与from子句中的查询进行semi-join,并通过zero-copy方式避免重复物化的开销。
- 支持将having中的条件下推到where条件中。
- 二级分区支持在分区级的MDL锁下,执行DDL操作并降低锁粒度。DDL执行期间仅影响被变更的分区,其他分区的DML操作不受影响。
| 2023-01-09 |
问题修复 | - 开启TDE时,关闭对系统表的加密操作,不允许对系统表进行加密。
- 调整物理复制连接相关的超时参数,以避免出现物理机故障时卡顿的问题。
|
8.0.2.2.9
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | - 忽略
dbms_ccl.add_ccl_digest_rule 、dbms_outln.add_index_outline 和dbms_outln.add_optimizer_outline 内置存储过程中参数query中的SQL语句结尾的分号。 - 将MEMBER关键字修改为非保留关键字。
- 支持Partial Result Cache功能。
- 优化器的join消除功能支持对left join的内表(包括有多层嵌套join以及Semi-Join的内表)进行消除。
| 2022-12-23 |
问题修复 | 修复在创建Server的语法中不能使用IF NOT EXISTS 的问题。 |
8.0.2.2.8
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | - 支持在分区表的部分分区上创建索引,即支持在分区表上以分区粒度创建、删除和重建索引。
- 支持在分区级的MDL锁下,执行REBUILD PARTITION和REORGANIZE PARTITION操作,使得在对某个分区执行DDL操作期间,其他分区的DML操作不受影响。
- 不再以明文格式存储和显示
mysql.servers 表中的用户名和密码。
说明 已有的Server的用户名和密码在升级后不会被加密,需要您手动删除后重新创建。 - 新增
SELECT INTO OSSOUTFILE 语句,用于将本地表(PolarFS上的表)导出至OSS。 - 支持热备切换功能。
- 新增DLM老化功能,您可以定期将老化的数据存储到低成本存储介质上。具体请参见生命周期管理(DLM)。
- 新增
dynamic_partition_prune_enabled 参数,用于控制动态分区裁剪功能。该功能开启后,在含有分区表的多表关联查询场景中,当连接条件满足分区裁剪条件时,可以减少不必要的分区扫描,从而提升查询性能。 - 支持在分区表与普通表之间使用partition-wise join技术,大幅提升大数据量下分区表与普通表的join效率。
- Statement Outline支持所有的UNION子句。
- 支持在访问分区表中的某一个分区时,使用LIMIT OFFSET下推功能。
| 2022-11-30 |
问题修复 | - 修复并行优化器中GROUP BY字段唯一值个数估算不准确的问题。
- 修复热升级时,执行SQL语句会记录Binlog的问题。
|
8.0.2.2.7
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | - 弹性多机并行(ePQ)支持跨机查询OSS上的外表数据。
- 支持在分区表上使用全局二级索引。
- 支持在含有SJM(Semi-join Materialization)的查询中使用多阶段多机并行查询。
| 2022-10-25 |
问题修复 | - 修复limit1提前结束导致的
ERROR 1028 (HY000): Sort aborted: Query execution was interrupted 问题。 - 修复通过定时任务写隐式主键可能导致节点崩溃的问题。
- 修复弹性多机并行(ePQ)下count(distinct ...) 结果集不正确的问题。
- 修复查询条件中存在DATE和DATETIME类型时,可能导致并行查询的查询结果集错误的问题。
|
8.0.2.2.6.1
类别 | 说明 | 发布时间 |
---|
问题修复 | 修复了RO节点因文件名哈希值冲突导致的崩溃问题。 | 2022-09-17 |
8.0.2.2.6
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | - 线程池优化:数据库事务在等待元数据信息锁或行锁时,线程池可以产生额外的线程来处理新的请求。
- 增强CCL支持DDL限流。
- 通过异步写入临时文件来加速DDL重新构建数据的过程。
- 提升高并发下thread pool性能。
- 在创建OSS server的语法中新增
oss_sts_token 参数,用于配置OSS的临时访问凭证。
| 2022-08-19 |
问题修复 | 修复查询中同时存在Limit offset pushdown和MRR优化时返回结果错误的问题。 |
8.0.2.2.5.1
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | - 支持创建混合分区表。具体请参见创建混合分区。
- 只读节点支持自定义内存临时表(目前只支持MEMORY引擎和MyISAM引擎)。
- 支持ReadableProto功能。通过指明Protobuf协议,在数据库上可以直接读取序列化存储在BLOB类型字段上的信息。
- 优化DDL排序:二路归并改为多路归并来减少IO次数,提升DDL加索引的性能。
- 在创建OSS server的语法中新增
oss_prefix 参数,用于配置OSS文件路径。
| 2022-07-22 |
问题修复 | - 修复
group_by_implicit_sorting 在选择group by 列的索引时,并发执行结果无序的问题。 - 修复通过
EXPLAIN FORMAT=TREE 语句来显示Hash Join 结果中cost 和rows 错误的问题。 - 修复集群低负载下的物理复制延迟过大的问题。
- 修复Buffer Pool脏页过多,且刷脏缓慢的场景下,LRU List清理受阻导致无法释放Page的问题。
- 修复了
instant add column 后回滚Update操作时产生的记录过长,进而导致数据库崩溃的问题。
|
8.0.2.2.4
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | 支持用户创建和使用Federated引擎表。 | 2022-05-31 |
问题修复 | - 修复当索引前缀存在多组数据时,SKIP_SCAN扫描结果集可能错误的问题。
- 修复数据库中的数据设置了删除标记后,SKIP_SCAN扫描结果集错误的问题。
- 修复Fast Query Cache在RO节点获取MDL锁导致Redo日志同步阻塞的问题。
|
8.0.2.2.3
类别 | 说明 | 发布时间 |
---|
问题修复 | 修复Using index for group by结果错误的问题。 | 2022-04-19 |
8.0.2.2.2
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | - PolarDB的并行查询支持多机并行执行引擎。针对单个查询,可以将部分或全部Workers调度到远程节点执行,从而拉起集群内多个节点的计算资源。 具体如下:
- 并行查询的并行度可以突破单机瓶颈,加速大查询等分析类查询。
- 根据全局资源负载,将查询调度到空闲节点上执行来加速查询,提升资源利用率。
- 用户可以组建多个集群组,形成计算资源池,从而实现更灵活的计算资源弹性能力。
- 并行查询参数
parallel_query_switch 添加开关restrict_on_limit_without_order ,该开关用于控制没有order by的limit并行查询。 - 支持条件下推到物化派生表。
| 2022-03-31 |
8.0.2.2.1
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | | 2022-03-15 |
问题修复 | - 修复
history list 无法被删除导致undo log 膨胀的问题。 - 修复通过
CREATE TABLE .. LIKE.. LIST DEFAULT HASH 创建分区表时失败的问题。 - 修复
UNIQUE CHECK IGNORE 在系统表mysql.tables 中的展示问题。
|
8.0.2.2.0
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | - 并行查询能力提升。将线性加速能力提升了一个等级,引入了多阶段并行计算能力。具体请参见概述。
- 分区表能力增强。支持更多的分区表类型,并且支持Interval分区。具体请参见分区表。
- 支持子查询解关联。
- 与PolarProxy联动,支持通过存储过程定义敏感字段,并对敏感字段取值的元数据进行打标。
- 增加STATUS变量
Online_altered_partition 来统计通过online进行ALTER TABLE ADD PARTITION 和ALTER TABLE DROP PARTITION 操作的次数。 - 数据库内核支持事务断点续传和只读节点读取未提交的事务。
| 2022-01-12 |
问题修复 | - 支持
SELECT FOR UPDATE WAIT N 和SELECT FOR SHARE WAIT N 语法。 其中,N表示等待超时的秒数,针对单个行锁。如果一个查询需要锁定多行,不会对时间进行累计,仅对单行进行超时检测。等待时间超过N秒,则返回锁等待超时错误Lock wait timeout exceeded; try restarting transaction 。 - 修复优化器针对部分
GROUP BY 语句未选择更优的索引范围路径的问题。 - 修复
group_concat_max_len 参数取值较大时,出现算术溢出导致GROUP_CONCAT函数结果错误的问题。 - 支持修改数据库缓存大小。
- 避免对分区表分区的不必要遍历,提升查询效率。
- 修复对加密表执行DDL操作失败的问题。
- 优化
master_key_id_mutex ,使得DDL操作可以并行执行。 - 修复了只读节点在高并发压力很大时,replay log崩溃的问题。
- 修复了只读节点在进行物理复制,高并发压力很大时,崩溃在
m_recv_bits.is_set(fold) 的问题。
|
8.0.2.1.4.1
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | innodb_adaptive_hash_index 参数的默认值由ON 改为OFF 。 | 2021-10-26 |
问题修复 | 支持修改数据库缓存大小。 |
8.0.2.1.4
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | 支持官方MySQL 8.0.20的Index Hints功能。 | 2020-12-01 |
问题修复 | - 修复Hash Join并行的一个稳定性问题。
- 修复统计信息中关于每个索引key对应行数估算错误的问题。
- 修复并行扫描共享临时表时,处理空数据出现错误的问题。
- 修复官方REGEXP_REPLACE函数处理数据出现错误的问题。
- 修复官方对于复杂查询中包含子查询常量的崩溃问题。
- 修复filesort返回错误数据的问题。
|
8.0.2.1.3
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | - 增强Hash Join的代价估算模型性能。
- 支持并行Hash Join,即Build和Probe阶段的并行。
| 2020-10-26 |
问题修复 | - 修复并行执行计划中并行分区数量错误显示的问题。
- 修复并行子查询的一个异常崩溃问题。
- 修复在并行查询中使用RAND() 函数时,多个工作线程不能产生随机结果的问题。
|
8.0.2.1.2
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | PolarDB并行全面支持最新的火山模型迭代执行器。 | 2020-09-27 |
8.0.2.1.1
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | 优化集群的写性能。 | 2020-08-26 |
问题修复 | 修复内存泄漏问题。 |
8.0.2.1.0
类别 | 说明 | 发布时间 |
---|
新增功能和性能优化 | - EXPLAIN支持并行计划的展示,支持通过FORMAT=TREE查看并行的执行计划树。
- 并行查询支持哈希连接,增强了无索引的JOIN性能,详情请参见Hash Join的并行执行。
- 支持Resource Manager功能,能够实现对CPU和内存资源的监控,详情请参见Resource Manager。
- 支持Performance Agent,能够实现PolarDB MySQL版集群中的节点内部各项性能数据的采集与统计,您可以通过直接查询内存表PERF_STATISTICS获取相关指标的性能数据,详情请参见Performance Agent。
- 支持热重启(Warm buffer pool),在Crash重启和升级时,Buffer Pool中的数据依然存在,大幅度加快重启速度,并保持重启后性能无衰减。
| 2020-07-22 |