本文将详细介绍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_ruledbms_outln.add_index_outlinedbms_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结果中costrows错误的问题。
  • 修复集群低负载下的物理复制延迟过大的问题。
  • 修复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 PARTITIONALTER TABLE DROP PARTITION操作的次数。
  • 数据库内核支持事务断点续传和只读节点读取未提交的事务。
2022-01-12
问题修复
  • 支持SELECT FOR UPDATE WAIT NSELECT 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改为OFF2021-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