PolarDB MySQL版8.0.1版本发布日志

本文将详细介绍PolarDB MySQL版8.0.1版本的更新日志和全部的功能特性。

2024年

8.0.1.1.46.2

类别

说明

发布时间

问题修复

  • 修复在发生RO节点切换为RW节点后,执行INSERT ... ON DUPLICATE KEY UPDATE语句导致表Autoinc回退问题。

  • 修复IMCI Serverless与内部内存弹性兼容性、扩缩容异常等问题。

  • 修复查询变换过程中表数量超过61导致崩溃的bug,该场景下不做查询改写。

2024-11-19

8.0.1.1.46.1

类别

说明

发布时间

问题修复

  • 修复DDL后,全文索引检索在只读节点上会卡住的问题。

  • 修复backward index scan能力开启与ICP等优化不兼容,新增polar_optimizer_switch开关进行控制。

2024-11-06

8.0.1.1.46

类别

说明

发布时间

新增功能和性能优化

  • 新增变量ignore_use_force_index,开启后可忽略语句及Outline中的所有use/force index(但不影响hint中的index())。

  • IMCI中INFORMATION_SCHEMA.IMCI_INDEX_STATS表增加字段PRUNED_PERCENT,表示每个列索引data skipping比例。

  • 优化当SQL trace类型设置为SLOW LOG时,SQL trace也将对DEMAND指定的语句生效。

  • 优化RW和RO支持非对称MTT缓冲区。支持RO和RW之间MTT联动开启。

  • 优化列存节点Serverless流程。

    允许新增列存节点在索引准备就绪后再对外服务,以减少在此期间由于路由到新增节点上的SQL走行存计划导致的慢查。

  • 优化列存索引(IMCI)在SQL执行时,保存分区信息带来的性能开销,提升分区表查询性能。

2024-10-28

问题修复

  • 修复开启Force recovery时,Undo初始化阶段出现集群异常崩溃的问题。

  • 修复在IMCI一写多读情况下,开启Hybrid Plan时异步重建列索引循环等待的问题。

  • 修复UNIQUE CHECK IGNORE分区表带有REPLACE的LOAD DATA二次导入相同数据报错的问题。

  • 修复在三可用区中,当入口数据的CRC计算值恰好为0时,可能导致recent_written引入脏数据的问题。

  • 修复RO节点在HA(节点切换)阶段可能卡住的问题,避免用户HA时间过长。

  • 修复在添加自增列并在该列上创建逆序主键索引时导致B-tree损坏。

  • 修复IMCI在处理一个表达式中包含多个带有SUM的子查询时出现的回退行存问题。

  • 修复并行重建主键场景中遇到error时小概率内存残留的问题。

  • 修复使用Temptable引擎时,包含GROUP BY查询在处理LOB字段时可能出现的崩溃问题。

  • 修复谓词条件中包含子查询时,并行查询结果可能出错的问题。

  • 修复JSON_TABLE在存在NULL FieId场景下查询可能崩溃的问题。

  • 修复在修改PRIMARY KEY字段时,EQUAL_PACK_LENGTH类型DDL操作时导致NCI编码异常。

  • 修复Proxy高级事务拆分与Fast Query Cache之间的冲突影响结果集的问题。

  • 修复在开启IMCI的情形下,在子查询中使用JSON_ARRAY表达式时,可能导致结果不正确的问题。

  • 修复库表恢复新流程中,同一张表进行多轮恢复后导致流程中断的问题。

  • 修复RDMA日志传输功能动态开启过程中的内存泄漏问题。

  • 修复列存索引(IMCI)不支持Online重建,导致列存索引不可用的问题。

  • 修复带有全文索引的表上,修改COMMENT添加列存索引(IMCI)时无法使用异步DDL。

  • 修复多并发场景下,事务可能不被kill的问题。

8.0.1.1.45.2

类别

说明

发布时间

问题修复

  • 修复历史版本升级至8.0.1.1.45.1的任务过程中,极小概率会发生任务中断的问题。

  • 修复在极少数情况下,列存执行查询过程中访问字符串类型数据时,因访问无效数据导致查询报错的问题。

2024-09-13

8.0.1.1.45.1

类别

说明

发布时间

性能优化

优化IMCI列存宽表的内存开销。

2024-09-09

8.0.1.1.45

类别

说明

发布时间

新增功能和性能优化

  • 新增显示会话是否在等待线程池调度。

  • IMCI中新增基于贪心算法的join reorder策略。

  • 新增存储过程和扩展SQL命令批量为整库添加列存索引

  • 新增从PolarDB5.7备份集大版本升级功能,从而提高一键迁移的效率。

  • 新增列存索引中Hybrid Plan新增对分区表、虚拟列、ENUM、SET和GIS类型的列的支持。

  • 优化PolarDB IO Threads可动态调整无需重启功能。

  • 优化IMCI单机回放自动弹性能力,减少回放延迟以及回放压力大产生的内存不足(OOM)问题。

  • 优化IMCI中Date类型字段的读取性能。

  • 优化IMCI中统计信息采样机制,提高了采样频率与采样数据的比例。

    优化低基数列的采样逻辑,避免出现统计信息不准确导致查询未被充分优化的情形。

2024-09-03

问题修复

  • 修复InnoDB全文索引在多主集群下导致节点崩溃的问题。

  • 修复IMCI中JOIN条件包含类型转换时,优化器对选择率估计偏差较大的问题。

    修复IMCI中因为对JOIN的输出结果基数估计偏大导致无法正确选择Hybrid Plan。

  • 修复有通配符的情况下,JSON_LENGTH返回结果错误问题。

  • 修复并行DDL执行期间某个时间窗口内修改innodb_bulk_load_page_grained_redo_enable参数导致部分page的Redo写错的问题。

  • 修复在只读节点切换为读写节点后,出现分区表的Autoinc值回退问题。

  • 修复开启innodb_polar_log_rdma_transfer时,移除RO节点可能导致监控连接阻塞一段时间的问题。

  • 修复IMCI的index join使用常量作为JOIN条件时可能触发结果不稳定的问题。

  • 修复临时表使用group by语句可能导致temptable在磁盘未满情况下报错table is full问题。

  • 修复RO节点在Buffer Pool非常满时,用户线程等待Free Page过久问题。

  • 修复包含lob字段的表批量删除数据场景blink可能出现死锁的问题。

  • 修复IMCI中运用JOIN消除优化时,可能出现结果不稳定的问题。

  • 修复将表中的数据全部删除之后,表中无数据时,下次写入操作会让Autoinc值重新从1开始的问题。

  • 修复database中含有几万张表,drop database失败问题。

  • 修复合并视图过程中无用的子查询未被删除的问题。

  • 修复当查询拥有过多UNION ALL时,查询在IMCI执行时可能报告内存不足的问题。

  • 修复desc select语句不能正确调用outline的问题。

  • 修复information_schema.tablestable_comments显示xxx is not base table的问题。

  • 修复IMCI在进行日期类型的隐式转换时,与MySQL行为不兼容导致结果不符合预期的问题。

  • 修复IMCI在旧版本创建的分区表在升级版本后新增分区时,默认pruner类型不一致导致的查询结果不一致问题。

  • 修复JSON中浮点数精度问题。

8.0.1.1.44

类别

说明

发布时间

新增功能和性能优化

  • 优化了简单查询(单表查询)上查询优化的耗时。

  • 支持join条件下推导出对应的视图。

  • 新增IMCI延迟物化版本的UnionAll。

  • 多主集群支持细粒度的表级锁。

  • 优化了IMCI中decimal sum/avg的性能。

  • 优化热点更新场景下的性能。

  • 优化了IMCI中hash match的性能。

  • 优化了IMCI中查询时使用的元信息的内存。

  • IMCI支持filter下推到outer join。

  • 调整PolarFS事务处理线程优先级,提高PolarDB DDL性能。

2024-07-06

问题修复

  • 修复blink悬挂页导致import table失败的问题。

  • 修复各类流程中主动触发打checkpoint期间DB卡住的问题。

  • 修复RO No Sync频繁动态开关可能会丢失标记的问题。

  • 修复多主集群全局Standby节点回滚段异常导致Standby节点无法启动的问题。

  • 修复带有function indexInnoDB表无法归档的问题。

  • 修复Last_query_cost在少数优化场景下出现负数的问题。

  • 修复在函数中包含了聚合函数时无法进行连接消除的问题。

  • 修复在会话级连接池下,连接复用,审计日志中IP地址未及时更新的问题。

  • 修复多主集群下全局表锁的加锁和解锁相关的问题。

8.0.1.1.43

类别

说明

发布时间

新增功能和性能优化

  • 列存索引IMCI新增基于Hybrid Plan的Index Join,支持利用InnoDB索引进行Join

  • 新增事务续传支持Binlog。

  • 优化只读节点在PFS上的Page读取性能。

  • 新增参数thread_pool_reset_waiting_state_before_queuing

  • 优化了IMCI中查询时使用的元信息的内存。

2024-06-03

问题修复

  • 修复设置optimizer_switchparallel_query_switch数值时,某些错误值会导致报Error而非Warning的问题。

  • 修复optimizer_switch值末尾加逗号后不生效的问题。

  • 修复隐式聚集查询加limit操作后索引选择改变问题。

  • 修复3AZ下, follower重建后,undo日志不断增长的问题。

  • 修复Persist RO可能导致RO读到旧数据的问题。

  • 修复多主集群只读节点复制延迟很高的问题。

  • 修复优化器因基数估计的误差导致无法选择最优的Join Order的问题。

  • 修复在删除记录造成的Btree结构调整时,可能导致的线程间死锁问题。

  • 修复归档表带有降序索引时归档操作失败的问题。

  • 修复Limit Offset下推组合二级索引等值条件加主键In List条件获取主键逆序翻页输出结果时无法返回数据的问题。

  • 修复DLM策略执行时权限过高的问题。

  • 修复多主集群下执行Create Table Select语句影响其他节点的可用性的问题。

  • 修复多主集群在多个节点同时执行DDL语句时系统页可能会损坏的问题。

8.0.1.1.42

类别

说明

发布时间

新增功能和性能优化

  • 支持在EXPLAIN结果中查看Statement Outline的调用情况。

  • 支持在列存索引(IMCI)中使用prefix murmur hash bloom filter。

  • 新增谓词下推功能,包括谓词从HAVING下推到WHERE,以及从HAVING下推到derived和subquery。

  • 支持在UPDATE语句中使用LEFT JOIN消除功能。

  • 新增行列混合优化器和基于代价的行列路由能力。

  • 支持在已创建列存索引的表上使用秒级加列功能。

  • 在行列路由中引入执行反馈机制,来收集真实的执行信息,并反馈给优化器。

  • 在Fast Query Cache中增加返回行数信息,命中缓存的查询在审计日志中可以展示返回行数。

  • 对DML语句默认禁用index merge intersection,以提升性能,防止死锁。

  • 减少列存索引(IMCI)内存分配和内存统计的元信息开销,以节省内存。

  • 列存索引(IMCI)支持使用BatchProbe,以提高JOIN操作的性能。

  • 优化列存索引(IMCI)的元信息、文件模块以及常驻内存中的小对象的内存,以减少常驻内存的使用。

  • 优化了将冷数据从OSS导回InnoDB的报错信息。

  • 在监控数据库性能时,忽略系统运维人员的访问对slow_queries状态指标的影响。

2024-04-30

问题修复

  • 修复开启RECYCLE BIN功能回收OSS IBD表时,重启集群后回收站中表的OSS路径映射错误的问题。

  • 修复启动NewHA vector voting disk时,只读节点(RO)时钟漂移过大抢占读写节点(RW)权限的问题。

  • 修复使用dbms_oss.delete_table_file内置存储过程无法删除CSV格式的冷数据的问题。

  • 修复Thread Pool异步鉴权过程中遇到ACL lock wait后,可能造成Thread Pool内部计数器错误的问题。

  • 修复对Blob类型的列执行UPDATE操作时,原记录的Blob空间无法回收的问题。

  • 修复对OSS外表反复归档时,数据丢失的问题。

  • 修复优化器选择了ordering index(排序索引),但实际执行时未省略排序操作的问题。

  • 修复创建OSS外表时,因OSS Server中没有配置oss_prefix参数导致节点崩溃的问题。

  • 修复访问多主集群下information_schema库中的部分表时,可能会获取异常数据的问题。

  • 修复对Decimal类型的数据执行乘法操作时,在至少一个乘数为0且结果的scale(小数位数)超过16时,会返回assert信息的问题。

  • 修复在更新创建列存索引的分区表上的统计信息时,可能只采样部分分区的信息,从而造成统计信息不准确的问题。

  • 修复索引等值访问未触发行列自适应路由的问题。

  • 修复Autoinc init日志打印过多的问题。

  • 修复OSS外表在Order By Desc场景下可能会报错的问题。

  • 修复在含有自增列的分区表上执行TRUNCATE PARTITION命令时,节点小概率崩溃的问题。

  • 修复执行EXCHANGE PARTITION操作时,因索引顺序不同导致数据损坏的问题。

  • 修复高并发下Buffer Pool自动取消前序缩容功能可能造成节点崩溃的问题。

8.0.1.1.41

类别

说明

发布时间

新增功能和性能优化

  • 列存索引中新增基于TopK下推的Left Join功能。

  • 支持为用户授予执行SHOW_ROUTINEFLUSH_USER_RESOURCESFLUSH_TABLESFLUSH_STATUSFLUSH_OPTIMIZER_COSTS命令的全局动态权限。

  • 优化全局一致性高性能模式的开启流程,当在RO节点将innodb_polar_scc参数设置为ON后,集群会自动开启高性能全局一致性的依赖功能RDMA、PolarTrans等,降低管控流程的复杂度。

  • 支持在全局一致性高性能模式功能中使用Variable-Setting Hint语法。

  • 支持将参数polar_oss_ddl_shared的值设置为ON,来访问正在执行冷数据归档的表数据。

  • 禁用Blob字段的小部分更新特性。

  • 支持对含有列存索引的表使用库表恢复功能。

  • 支持在列存索引中使用most common value统计信息收集功能,以改善数据偏斜情况下records per key估算不准的问题。

  • 优化列存索引内存调度功能,提升内存利用率。

  • 优化非阻塞DDL功能,以支持更多的DDL语句。

  • 支持同时使用列存索引和全局一致性(高性能模式)功能。

  • 支持使用CHECK TABLE命令检查特定分区。

2024-03-19

问题修复

  • 修复在多主集群上执行TRUNCATE语句时,可以在任意节点执行的问题。

  • 修复在预读Blob类型的数据时,访问无效的Blob引用导致节点崩溃的问题。

  • 修复将本地表并行导出至OSS引擎时可能导出失败的问题。

  • 修复在执行checkpoint操作时,checkpoint的LSN位点不符合预期,导致集群异常重启后,崩溃恢复逻辑无法正常运行的问题。

  • 修复Autoinc出现回退时,需要重启节点才能恢复的问题。

  • 修复在CTE(Common Table Expression)中多处引用基于TempTable引擎的临时表,并且在临时表上使用索引扫描时,可能导致节点崩溃的问题。

  • 修复列存索引在处理超长字符串类型时出现的内存越界问题。

  • 修复在使用列存索引功能时,同时打开预读功能导致节点概率性崩溃的问题。

  • 修复XEngine的compaction后台任务因并发控制过于严格,对前台操作产生影响进而影响慢查询性能的问题。

  • 修复使用BIGINT类型的列参与Join操作时,若列中的值很大,可能导致基数估计结果不准确,无法使用列存索引的问题。

  • 修复DDL预读在并行DDL场景下存在死锁的问题。

  • 修复Statement Outline和Concurrency Control等功能在执行Reload操作时,出现的内存泄漏的问题。

  • 修复执行Group By操作后,BIT字段显示不正确的问题。

  • 修复TDE在fork创建子进程时,与RDMA内存不兼容的问题。

  • 修复并行查询将GROUP BY下推到Worker上去并行执行时,在有分区表的情况下,返回结果集中存在分组重复的问题。

  • 修复执行EXCHANGE PARTITION操作时,因索引顺序不同导致索引损坏,无法访问表数据的问题。

  • 修复主键不包含分区键的分区表在使用查询优化器进行搜索、执行DML操作和记录Binlog时的问题。

8.0.1.1.40.2

类别

说明

发布时间

问题修复

  • 修复当多主集群的主节点负载不均衡时,全局只读节点复制延迟可能变高的问题。

  • 修复在多主集群上首次新建只读节点时,只读节点可能无法启动的问题。

  • 修复在多主集群上执行DDL时,可能导致主节点重启失败的问题。

2024-02-07

8.0.1.1.40

类别

说明

发布时间

新增功能和性能优化

  • 提升低并发场景下Thread Pool处理建连请求的速度。

  • 提升短连接场景下的数据库性能。

  • 支持在X-Engine引擎中采样统计信息来估计近似压缩比。

  • 支持在多主集群(库表)的全局只读节点上开启列存索引功能。

  • 使用列存索引功能时,允许用户忽略Metabase等工具隐式设置的事务隔离级别。

  • Stats Manager支持将采集直方图的任务自动下发到只读节点或热备节点执行,以实现直方图的自动更新。

  • 支持在使用Hybrid Plan加速宽表查询功能时使用临时表。

  • 新增开启semi-sync自适应退化和自动恢复功能。

  • 支持使用INPLACE算法修改字段的字符集。

  • 列存索引功能新增动态过滤器,提升表与表之间的关联效率。

  • 在HINT语句中使用SET_VAR设置参数loose_optimizer_switch的值时,末尾不需要添加逗号。

  • 优化了列存索引(IMCI)中的事务掩码计算流程。

  • 调整SQL Trace中查询语句的最大展示长度。

  • SQL Trace支持对限定只读节点打开配置选项,即支持将参数sql_trace_type配置为REPLICA_DEMANDREPLICA_ALLREPLICA_SLOW_QUERY

  • 在使用自适应执行能力时,若冷数据读IO较多,会自动增加可切换的最大执行时间。

2024-01-19

问题修复

  • 修复使用列存索引(IMCI)功能查询TopK数据时,因查询语句中涉及的表中的NULL值过多,进行倒序排序时排序结果错误的问题。

  • 修复只读列存节点在涉及列存索引表的DDL执行过程中启动时,无法恢复列存数据的问题。

  • 修复在执行shrink操作的过程中出现异常,导致空间泄露的问题。

  • 修复在X-Engine引擎物理复制过程中并发修改数据结构,导致只读节点异常的问题。

    修复X-Engine引擎从只读副本(replica)升级到同步备库(standby)的过程中,升级失败的问题。

  • 修复在高并发查询场景下使用列存索引时,优化器内存占用过多的问题。

  • 修复使用列存索引更新分区表上的统计信息时,可能因只采样部分分区而造成统计信息不准确的问题。

  • 修复查询语句中含有返回空结果集的子查询时,不能被路由到列存索引节点上执行的问题。

  • 修复对集群执行升级操作时,可能导致根据DIGEST值匹配的CCL规则失效的问题。

  • 修复当数据库中存在CSV或ORC外部表时,查询information_schema.tables表信息异常缓慢的问题。

  • 修复因多主集群(库表)的全局Binlog中table_id重复,导致Flink CDC解析失败的问题。

  • 修复使用事务断点续传功能时,因启用并行查询功能而无法查询到续传事务数据的问题。

  • 修复执行库表恢复的新流程时,只读(RO)节点注册位点过低导致新增RO节点失败的问题。

  • 修复执行库表恢复的新流程时,因磁盘满载导致线程无法退出的问题。

  • 修复使用Prepare Statement处理大量并发请求或执行复杂查询时,占用大量内存的问题。

  • 修复使用列存索引(IMCI)查询包含BIT类型数据的视图时,查询结果不正确的问题。

  • 修复对KEY分区表进行剪枝时,因未考虑生成列(STORED GENERAGED COLUMN),导致在KEY分区表中执行插入操作时报错"ERROR 1748 (HY000) Found a row not matching the given partition set"的问题。

  • 修复将冷数据归档为IBD格式的文件时,由于频繁执行DDL和HA操作,导致新连接仍然会访问已被废弃的旧文件的问题。

2023

8.0.1.1.39

类别

说明

发布时间

新增功能和性能优化

  • 支持任意节点访问列存的INFORMATION_SCHEMA视图信息,默认聚合展示所有列存节点的信息。

  • 精简行列自动分流参数的使用方法。

  • 当查询语句不支持使用列存引擎时,可以将参数use_imci_engine的值设置为FORCED后再执行查询语句。此时,查询结果中会返回不能使用列存引擎的原因。

  • 支持在Grouping字句中使用关联子查询,以及消除复杂关联子查询。

  • 多主集群的全局Binlog支持GTID(全局事务标识符)。

  • 优化Buffer Pool扩容功能,如自动取消前序缩容、及时扩容等。

  • 优化列存索引(IMCI)的启动流程,减少列索引的启动准备时间。

  • 支持行列混合查询时的自适应路由能力。

  • 提升RO节点在二级索引回表主键情况下的读取性能。

2023-12-14

问题修复

  • 修复在创建OSS外表时,用户自定义CONNECTION连接格式有误导致节点崩溃的问题。

  • 引入官方MySQL 8.0.17的补丁,用于修复在客户端修改auto_increment_increment后导致autoinc回退的问题。

  • 引入官方MySQL 8.0.16的补丁,用于修复Blob过大引发死锁的问题。

  • 修复因Runtime Apply引发RO节点崩溃的问题。

  • 修复RO节点的物理机出现故障时,RW节点在特殊情况下未将其复制关系中断,而引发RW节点刷脏受阻的问题。

  • 修复HA后,因表数量过多而引发table cache淘汰导致Autoinc回退的问题。

  • 修复多主集群缓存中心重启情况下,读写节点可能无法启动的问题。

  • 修复多主集群切换写入点时,可能发生表无法打开的问题。

  • 修复在RO节点进行物理复制时,内存占用过多的问题。

  • 修复了AP节点上的outline在SQL token的长度超过max_digest_length参数值时不生效的问题。

  • 修复了RO节点升级后,增加或删除outline不能同步到RO节点的问题。

  • 修复X-Engine中的表在低并发写入时响应时间偏高的问题。

  • 修复Hybrid Plan应用于带Order By的SQL语句,且输出行包含NULL时,报错"table definition has changed"的问题。

8.0.1.1.38.1

类别

说明

发布时间

问题修复

未添加过Statement Outline的集群,在版本升级后如果添加了Statement Outline,进行outline匹配时不再受字符集影响。

2023-11-07

8.0.1.1.38

类别

说明

发布时间

新增功能和性能优化

  • 支持用户使用内置存储过程dbms_oss.delete_table_flie删除OSS上不使用的文件。

  • 优化了库表恢复功能。如提升库表恢复速度,支持任务失败回滚等。

2023-10-31

问题修复

  • 修复因多主集群的读写(RW)节点压力大,导致全局只读节点复制延迟增大的问题。

  • 修复了带IMCI列索引的表无法执行按时间点恢复的问题。

  • 修复了部分场景下,GroupJoin算子占用过多内存导致查询失败的问题。

  • 修复加载checkpoint时超前的RowID回滚失败的问题。

  • 修复访问X-Engine引擎的只读(RO)节点无法汇报版本引用信息,引发空间回收失败的问题。

  • 修复了在unsigned列与signed列进行Join连接时,优化器不能准确估算Join选择率的问题。

  • 修复了部分带有OR谓词的查询因查询计划无法绑定正确的列而无法执行的问题。

  • 修复了查询被调度器终止时可能导致数据库重启的问题。

  • 修复列存索引在延迟物化场景下IO性能退化的问题。

  • 修复多主集群在极少数情况下因没有及时释放定时任务元数据锁而导致集群崩溃的问题。

  • 修复访问X-Engine引擎中的表时,因访问主键索引之后无法使用索引覆盖扫描结果而导致查询变慢的问题。

  • 修复一键升级RDS MySQL至PolarDB MySQL版场景下,PolarDB集群重启导致迁移链路中断的问题。

  • 修复删除X-Engine中的表或索引时,由于与偶发的后台SwitchMemtable操作之间存在并发关系而产生极端的redo log时序。导致replica节点崩溃的问题。

8.0.1.1.37

类别

说明

发布时间

新增功能和性能优化

  • 优化大Blob场景下,只读节点(RO)读取Redo日志的速率。

  • 调用内置存储过程时,支持使用大写的存储过程名称进行调用。

2023-09-21

问题修复

  • 修复在调用部分内置存储过程时,在入参中添加反引号导致节点崩溃的问题。

  • 修复删除相同的SQL语句类型中,最后一个只填写了keyword而没有schema和table的CCL规则时,可能导致节点崩溃的问题。

  • 修复当新的只读节点(RO)连接读写节点(RW)时,如果读写节点上的checkpoint之后存在文件扩展日志,在只读节点升级为读写节点的过程中存在小概率崩溃的问题。

8.0.1.1.36

类别

说明

发布时间

新增功能和性能优化

  • 提高将冷数据以CSV格式归档至OSS时的归档速度。

  • 优化等值非覆盖索引访问代价模型。

  • 新增参数opt_non_covering_key_cost,用于控制是否考虑二级索引初始定位代价。

  • 新增参数worst_seek_records_threshold,用于控制在代价估算时是否限制等值非覆盖索引访问的IO代价最大值。

  • Redo半同步功能增加超时退化机制。

2023-08-22

问题修复

  • 修复CTE中包含嵌套CTE,且有多处引用的情况下,JPPD优化功能崩溃的问题。

  • 修复关闭主节点并重启时,Slave节点未触发重连机制的问题。

  • 修复了在更新BLOB类型数据的语法中使用JSON_REMOVE函数时可能引发的问题。

  • 修复事务死锁检查过程中,可能出现因访问非法内存导致节点异常重启的问题。

8.0.1.1.35.1

类别

说明

发布时间

问题修复

修复低规格集群上CPU占用过高的问题。

2023-07-13

8.0.1.1.35

类别

说明

发布时间

新增功能和性能优化

  • 新增SELECT INTO DEFAULT OSSOUTFILE语句。

  • 优化多主集群中全局只读节点的共享存储能力。

  • 标准版新增自动锁定和恢复集群的能力,即ESSD磁盘满载后,自动锁定集群,扩容后自动恢复集群。

  • 新增参数innodb_polar_import_tablespace_strict_mode,默认值为ON,即执行库表恢复操作时,表结构中包含full-text index会报错。

  • 支持使用列存索引查询分区表中指定分区的数据。

  • SQL Trace支持采样具体的SQL语句。

2023-07-05

问题修复

  • 修复普通用户可以删除sys的问题。

  • 修复HA后,对分区表执行库表恢复时,节点异常重启的问题。

  • 修复按时间点恢复多主集群期间,Standby节点切换master节点失败的问题。

  • 修复多主集群的存储过程、自定义函数、定时任务、视图和触发器在不同节点之间没有隔离的问题。

  • 修复多主集群的存储过程、自定义函数、定时任务、视图和触发器在不同节点之间无法切换的问题。

  • 修复当多主集群开启查询缓存功能后,如果更新了数据,Information_schema库下的数据无法同步更新的问题。

  • 修复多主集群在数据表数量太多的情况下,清除缓慢的问题。

8.0.1.1.34

类别

说明

发布时间

新增功能和性能优化

  • 允许在多主集群的全局RO节点上开启列存索引功能。

  • 支持在虚拟列上创建列存索引。

  • 支持对创建列存索引的表使用回收站功能。

  • 支持创建混合分区表。

  • 联邦查询引擎支持将Limit Offset语法下推至远端数据库执行。

  • 联邦查询引擎支持将所有兼容的条件下推到远端服务器执行,且仅返回查询所需要的列。

  • 新增主键数据切片函数call dbms_dts.show_parallel_ranges (<schema_name>, <table_name>, [<suggestion_ranges>])

  • 支持对含有自增主键的表使用冷数据归档功能。

  • 优化OSS查询能力。即开启弹性并行查询功能后,当系统的loose_csv_max_oss_threads参数值大于1时,直接进行并行查询。

  • 优化OSS外表文件格式错误的报错信息内容。

  • 支持在ALTER TABLE PARTITION BY RANGE语法中增加without validation的选项,将普通表快速转换为RANGE分区表。

  • 支持将含有'UNIQUE CHECK IGNORE=1' 属性的分区表通过ALTER TABLE REMOVE PARTITIONING语法转换为普通表。

  • 优化使用Statement Outline的过程中,无Outline时,执行语句跳过digest hash计算的问题。

  • 新增InnoDB on OSS功能。

  • 在多主集群上更新Statement Outline和Concurrency Control后,其他master节点自动同步更新。

  • 优化拼写错误的报错信息内容。

  • 优化开启StandBy半同步后,RW节点的写入性能。

  • 新增LIST DEFAULT HASH分区表类型。

  • 支持通过CREATE LIKE语法创建LIST DEFAULT HASH类型的分区表。

  • 创建LIST DEFAULT HASH分区表的add partition语法中支持使用without validation选项来添加LIST分区 。

  • SQL Trace支持跟踪慢查询的执行信息。

  • 优化PolarFS内部的锁粒度,大幅提升部分高负载场景下的性能。

2023-06-12

问题修复

  • 修复OSS无法读取JSON文件的问题。

  • 修复ps模式下Hint Plan生成失败的问题。

  • 修复checkpoint LSN推进不符合预期的问题。

  • 修复系统视图中view_definition为空的问题。

  • 修复在RW节点执行ALTER TABLE ... IMPORT TABLESPACE操作的同时,在RO节点执行查询操作可能会报错的问题。

  • 修复带\n的数据,通过DLM归档后无法读取的问题。

  • 修复冷数据归档后,OSS上可能会残留临时文件的问题。

  • 修复读取CSV格式的OSS冷数据时,可能只读取到第一个文件的问题。

  • 修复并发记录慢查询日志的过程中,thread pool内部计数器异常可能造成SQL请求堆积的问题。

  • 修复多主集群并发执行INSERT命令的过程中,可能会出现自增列冲突的问题。

  • 修复在RO节点回放宽表的Redo日志时,出现复制延迟的问题。

  • 修复查询语句中含有窗口函数时,使用Limit Offset下推优化功能导致查询结果错误的问题。

  • 修复在多主集群中执行CHECK TABLE语句时,需要全程持有锁的问题。

  • 修复执行ALTER TABLE engine = csv storage oss, force; 命令时,无法删除OSS上源文件的问题。

  • 修复动态调整多主集群缓存时,导致集群崩溃的问题。

  • 修复多主集群无法导出表空间的问题。

  • 修复当engine_condition_pushdown参数值设置为true时,带有NULL字段的表下推不正确的问题。

  • 修复使用Fast Query Cache功能时,使用Time和timestamp进行比较,结果集可能错误的问题。

  • 修复动态开启PolarTrans后,在高并发更新场景下可能导致性能回退的问题。

8.0.1.1.33

类别

说明

发布时间

新增功能和性能优化

  • 列存索引支持以重建列存索引数据的方式秒级加列。

  • 列存索引支持REGEXPR函数。

  • 列存索引支持基于IS NULL和IS NOT NULL相关的判断条件进行裁剪优化。

  • 多主集群(库表)支持使用冷数据归档功能。

  • 对多主集群(库表)版集群执行内核小版本升级操作时,支持并行升级集群中的各个节点。

  • 多主集群(库表)支持持久化统计信息。

  • 优化对OSS外表开启OSS条件下推时的Optimizer trace。

  • 手动和自动归档冷数据过程中不记录Binlog日志。

  • 全局一致性(高性能模式)新增Innodb_scc_timeout_count参数,用于记录查询过程中的超时次数。

  • 全局一致性(高性能模式)新增Innodb_scc_timeout_degrade_count参数,用于记录查询超时转异步查询的次数。

  • 支持在只读节点查询gtid信息。

  • Hint Plan新增Hint种类BNL、BKA和MRR。

  • Fast Query Cache新增变量qc_weak_read_time,用于读取非实时缓存。

  • Statement Outline功能新增接口dbms_outln.add_optimizer_outline('schema', 'hints', 'query') ,用于添加Optimizer Hints。

  • 新增Auto Plan Cache功能。

  • SQL Sharing中使用JSON格式展示plan_extra、ref_by和extra。

  • 在慢日志扩展数据中展示执行计划。

  • 当使用Statement Outline过程中指定的Index Hints不存在时,不直接进行报错,只报告警。

  • SQL Sharing中新增变量by_expr_ignore_charset。将by_expr_ignore_charset设置为ON后,会消除不同字符集下含Order By或Group By语句生成的digest差异。但设置为ON后, 所有在该模式下生成的digest值都会与设置为ON之前生成的digest值不同。

  • 优化扫描回收站内表时的内存消耗。

  • 提供多版本引擎能力。

2023-04-14

问题修复

  • 修复对空的OSS外表执行check操作时,数据库节点会崩溃的问题。

  • 修复在多主集群(库表)的全局只读节点执行查询操作时,偶尔会报错的问题。

  • 修复多主集群(库表)元信息表空间大小不同步的问题。

  • 修复多主集群(库表)在系统表空间下自定义的表数据会回滚的问题。

  • 修复开启回收undo日志功能后,undo日志无法被回收的问题。

  • 修复在只读节点建立物理复制时出现读超时,而无法连接数据库的问题。

  • 修复在多主集群(库表)中执行ALTER TABLE DISCARD tablespace后,再执行ADD INDEXDROP INDEX语句时导致节点崩溃的问题。

8.0.1.1.32

类别

说明

发布时间

新增功能和性能优化

  • 归档为CSV或ORC格式支持alter table engine语法。通过Alter Table table_name engine = csv connection = 'default_oss_server'命令可以指定冷数据表归档到OSS上。

  • 列存索引功能支持MySQL的DECIMAL数据类型。

  • 创建列存索引时支持根据指定的列对数据进行排序,从而提高裁剪效率。

  • 列存索引功能支持基于存储在OSS中的ORCPARQUET格式的文件进行数据扫描。

  • 基于代价的计算支持将物化的derived table的外层连接条件,下推到derived table内部。

  • 优化了优化器在等值推导场景下,估算关联列扫描行数的能力。

  • 优化器的join消除功能支持对left join的内表(包括有多层嵌套join以及Semi-Join的内表)进行消除。

  • 多主集群(库表)支持新增多个全局RO节点,且支持HA切换机制。

  • 新增冷热数据分离管理(DLM)功能,您可以定期将老化的数据存储到低成本存储介质上。

  • 支持使用CAST(... AS INT) 语法 ,行为与CAST(... AS SIGNED INT) 完全一致。

  • 多主集群支持多主互备功能。

2023-02-21

问题修复

  • 修复长事务场景下可能导致数据库性能变慢的问题。

  • 修复全局一致性(高性能模式)和PQ的兼容性问题。

  • 修复多主集群使用透明表空间传输功能时,会阻塞其他节点执行DDL的问题。

  • 修复表的free size在一定概率下会显示为4 PB的问题。

  • 修复多主集群的多个主节点并行重启时,部分节点无法启动的问题。

  • 修复多主集群的全文索引和列存索引在写入点切换时,导致集群崩溃的问题。

  • 修复带Foreign Key的表做copy DDL时,数据库缓存访问异常的问题。

  • 调整物理复制连接相关的超时参数,以避免出现物理机故障时卡顿的问题。

  • 修复多主集群崩溃恢复时,无法恢复表锁的问题。

  • 修复新增节点时,访问information_schema.tables表,节点可能会崩溃的问题。

  • 修复多主集群崩溃恢复阶段丢失脏页的问题。

  • 修复删除多主集群的数据库后,切换写入点时导致集群崩溃的问题。

  • 修复在开启线程池时,使用TempTable engine可能导致访问非法内存的问题。

2022

8.0.1.1.31

类别

说明

发布时间

新增功能和性能优化

  • PolarDB MySQL版的标准版新增PolarDB高可用自动切换功能,该功能是基于NVMe(Non-Volatile Memory Express)云盘的Reservation功能。

  • CCL(Concurrency Control)功能新增内置存储过程dbms_ccl.add_ccl_digest_rule,即通过digest值匹配CCL规则。

  • 内置存储过程支持使用以@开头的变量作为输入值。

  • 忽略dbms_ccl.add_ccl_digest_ruledbms_outln.add_index_outlinedbms_outln.add_optimizer_outline内置存储过程中参数query中的SQL语句结尾的分号。

  • Statement Outline支持所有的UNION子句。

  • 不再以明文格式存储和显示mysql.servers表中的用户名和密码。

    说明

    已有的Server的用户名和密码在升级后不会被加密,需要您手动删除后重新创建。

  • 支持在访问分区表中的某一个分区时,使用LIMIT OFFSET下推功能。

  • 产品系列为高压缩引擎(X-Engine)的集群支持使用并行DDL功能。

  • 线程池(Thread Pool)功能新增内核自治能力。

  • 线程池(Thread Pool)功能兼容CCL,开启Thread Pool功能后,如果用户的连接被CCL拦截,则该连接会在Thread Pool内部标记,并且Thread Pool会创建额外的线程来执行其他连接上的SQL语句。

  • 新增hint语法OSS_REPLACE_EXISTED_FILE(),用于在执行SELECT INTO OSSOUTFILE语句时,如果当前文件已存在,则直接覆盖原文件。

  • 支持在OSS引擎上使用单机并行查询。

  • information_schema库中新增表INNODB_GLOBAL_DDL_LOCK_INFO,用于查看多主集群下的全局锁。

  • 新增AWR SQL Detail功能,用于审计和管理DDL、LOCK DB和LOCK TABLE等语句。

  • 支持通过ANALYZE TABLE命令生成列存索引统计信息来辅助查询决策。

  • 含有列存索引的表支持使用库(表)恢复功能。

  • 列存索引功能支持使用cast_as_real函数。

  • 支持通过INFORATION_SCHEMA.IMCI_ASYNC_DDL_STATS表来查看列存索引的构建状态和进度。

  • 优化列存索引中关联字段为字符串类型的关联查询。

2022-12-07

问题修复

  • 修复在创建Server的语法中不能使用IF NOT EXISTS的问题。

  • 修复在多主集群的master节点上执行DDL语句时可能会导致异常的问题。

  • 修复在多主集群下查询information_schema库中的表时可能导致死锁的问题。

  • 修复多主集群replace性能下降的问题。

  • 修复在多主集群下创建隐式临时表时需要获取全局锁的问题 。

  • 修复多主集群崩溃恢复时可能挂死的问题。

  • 修复SQL Trace功能统计的逻辑读次数不准确的问题。

  • 修复列存索引中含有ENUM和SET类型的数据时,输出结果错误的问题。

  • 修复含有ROLL UP和GROUP BY的SQL语句无法路由到列存执行的问题。

8.0.1.1.30

类别

说明

发布时间

新增功能和性能优化

  • 优化列存索引功能的UNION ALL操作。

  • 列存索引功能新增内置存储过程,用于辅助创建列存索引。

  • 列存索引功能新增全局参数imci_default_pack_shift,用于控制创建列存索引的默认pack大小。

  • 列存索引功能支持通过分区裁剪技术来优化分区表的查询性能。

  • 列存索引功能支持使用BIT、JSON和GEOMETRY数据类型。

  • 列存索引功能支持EXCHANGE PARTITION操作。

  • 通过MTT技术优化全局一致性(高性能模式)性能。

  • 多主架构集群版支持自适应淘汰缓存中心的数据页。

  • JSON文档的递归深度支持150。

  • 多主架构集群版新增mm_flush_autoinc_when_unlock参数,用于在释放全局库/表锁时,控制是否刷新系统表中的autoinc信息,默认值为false。

  • 支持Schema_name为空的Statement Outline匹配所有与其Digest值相等的SQL语句。

  • Fast Query Cache支持访问数据库中元数据表(information_schema.tables/columns)的缓存 。

  • 新增SQL Trace功能,用于跟踪SQL语句的执行过程。

  • 新增SELECT INTO OSSOUTFILE语句,用于将本地表(PolarFS上的表)导出至OSS。

2022-10-29

问题修复

  • 修复通过RDMA远程读取数据时,读取数据不完整的问题。

  • 修复master节点关闭时,table clean线程状态异常的问题。

  • 修复Offline Master和WAR产生死锁的问题。

  • 修复master节点与缓存中心失联时,master节点无法正常关闭的问题。

  • 修复通过定时任务写隐式主键可能导致节点崩溃的问题。

  • 修复热升级时,执行SQL语句会记录Binlog的问题。

8.0.1.1.29.1

类别

说明

发布时间

问题修复

修复了RO节点因文件名哈希值冲突导致的崩溃问题。

2022-09-17

8.0.1.1.29

类别

说明

发布时间

新增功能和性能优化

  • 只读节点支持热备功能。

  • 并发控制CCL(Concurrency Control)新增ccl_mode参数,即当数据库访问流量达到并发控制上限后,拒绝其他访问当前集群的请求。

  • 创建OSS server的语法中新增oss_sts_token参数,用于配置OSS的临时访问凭证。

  • 支持adaptive digest length,即statement digest计算的内存空间可以随着查询语句的长度自适应调整。

  • 支持通过集群地址查询INFORMATION_SCHAME中与列存索引相关的表。

  • 列存索引功能新增ETL模式,即支持使用只读列存节点的查询结果建表,并且支持将只读列存节点的查询结果写入表。

  • 优化列存索引功能的TopK查询(order by a limit n,m形式的翻页查询)性能。

  • 列存索引功能新增状态Last_stmt_use_imci,用于确认查询语句中是否使用列存索引。

  • 列存索引功能新增全局变量polar_enable_implicit_imci_with_create_table,支持在执行CREATE TABLE语句时自动创建列存索引。

  • 列存索引功能支持使用Cursor。

  • 支持在显式事务查询过程中使用列存索引。

  • 支持在分区表上创建列存索引。

2022-09-08

问题修复

  • 修复DDL语句中使用copy算法时,由于事务回滚导致的缓存和文件不一致的问题。

  • 修复删除数据库不记录slow log的问题。

  • 修复查询中同时存在Limit offset pushdown和MRR优化时返回结果错误的问题。

8.0.1.1.28.1

类别

说明

发布时间

新增功能和性能优化

线程池优化:数据库事务在等待元数据信息锁或行锁时,线程池可以产生额外的线程来处理新的请求。

2022-08-12

8.0.1.1.28

类别

说明

发布时间

新增功能和性能优化

  • 支持列存索引功能。通过列存索引功能以及面向列式数据的并行向量化执行引擎,可以大幅提升复杂查询的执行效率。具体请参见列存索引

  • 支持用户创建和使用Federated引擎表。

  • 只读节点支持自定义内存临时表(目前只支持MEMORY引擎和MyISAM引擎)。

  • 优化DDL排序:二路归并改为多路归并来减少IO次数,提升DDL加索引的性能。

  • 支持DDL预读功能,提高创建索引的效率。

  • 创建OSS server的语法中新增oss_prefix参数,用于配置OSS文件路径。

2022-07-20

8.0.1.1.27

类别

说明

发布时间

问题修复

修复集群低负载下的物理复制延迟过大的问题。

2022-05-25

修复Buffer Pool脏页过多,且刷脏缓慢的场景下,LRU List清理受阻导致无法释放Page的问题。

优化insert数据过程中的内存分配问题。

修复innodb_show_verbose_deadlock取值为ON(默认值)的前提下,执行show engine innodb status命令展示全量死锁信息的问题。

修复RW节点完成undo truncate操作后,新注册到集群的RO节点崩溃的问题。

修复数据库中的数据设置了删除标记后,SKIP_SCAN扫描结果集错误的问题。

8.0.1.1.26

类别

说明

发布时间

问题修复

修复Using index for group by结果错误的问题。

2022-05-05

修复数据库中的数据设置了删除标记后,SKIP_SCAN扫描结果集错误的问题。

修复当索引前缀存在多组数据时,SKIP_SCAN扫描结果集可能错误的问题。

8.0.1.1.25

类别

说明

发布时间

问题修复

修复Using index for group by结果错误的问题。

2022-04-12

8.0.1.1.24

类别

说明

发布时间

问题修复

  • 修复数据库启动时未正确解析threadpool_high_priority_users的问题。

  • 修复动态修改threadpool_high_priority_users可能影响其他参数的问题。

  • 修复高压缩引擎(X-Engine)的只读节点偶发的回放Redo日志崩溃的问题。

2022-03-11

8.0.1.1.23

类别

说明

发布时间

新增功能和性能优化

  • 支持Strict Consistency Cluster(RO节点强一致性读)功能。

  • Statement Outline支持PrepareStatement。

  • 支持热备节点功能,进一步优化高可用效率。

2022-01-20

问题修复

  • 修复Fast Query Cache在RO节点获取MDL锁导致Redo日志同步阻塞的问题。

  • 支持SELECT FOR UPDATE/SHARE WAIT N语法。 其中,N表示等待超时的秒数,针对单个行锁。如果一个查询需要锁定多行,不会对时间进行累计,仅对单行进行超时检测。等待时间超过N秒,则返回锁等待超时错误Lock wait timeout exceeded; try restarting transaction

2021

8.0.1.1.22

类别

说明

发布时间

问题修复

  • 优化并行计划在分区表索引等值访问时的并行度估算精度。

  • 修复特定场景下,优化器进行统计信息估算的代价耗时长的问题。

  • 修复优化器针对部分GROUP BY语句未选择更优的索引范围路径的问题。

  • 修复Standby节点通过HA切换为主节点后,创建新的Redo日志文件失败的问题。

2021-12-22

8.0.1.1.21

类别

说明

发布时间

问题修复

  • 修复group_concat_max_len参数取值较大时,出现算术溢出导致GROUP_CONCAT函数结果错误的问题。

  • 修复备可用区的Standby节点,从故障中恢复后出现数据错误的问题。

  • 修复备可用区的Standby节点切换为主节点(RW节点)时,出现的数据异常问题。

  • 修复优化器在选定了多列组合索引过滤条件时,只能进行单列索引的过滤,不能进行组合索引过滤的问题。

2021-11-26

8.0.1.1.19

类别

说明

发布时间

新增功能和性能优化

  • 针对DDL操作增加了新的并发控制CCL规则。

  • 增加参数restrict_on_limit_without_order,控制存在limit子句的并行查询中在没有order by子句的情况下,是否允许执行并行查询。

2021-09-18

问题修复

  • 修复并行查询中的Group by隐式排序,在选择group by列的索引的时候,并发执行结果无序的问题。

  • 修复在使用线程池(Thread Pool)时,审核日志中事务ID字段始终为0的错误。

8.0.1.1.18

类别

说明

发布时间

新增功能和性能优化

数据库内核支持事务断点续传和只读节点读取未提交的事务。

2021-08-14

问题修复

优化master_key_id_mutex,使得DDL操作可以并行执行。

8.0.1.1.17

类别

说明

发布时间

新增功能和性能优化

  • 新增polar_replica_work_on_nonblock_mdl_mode参数。开启该参数时,只读节点上的RU/RC隔离级别的未提交事务将不再阻塞主节点上的DDL操作,同时只读节点上将不在保证表定义的事务特性。

  • 优化了海量表场景下(如需要提供SaaS服务的场景)对统计信息的维护机制,大幅提升高并发下的查询表结构(desc table)和读写性能。

2021-07-23

问题修复

  • 修复了只读节点在进行物理复制,高并发压力很大时,崩溃在m_recv_bits.is_set(fold)的问题。

  • 修复了只读节点在高并发压力很大时,replay log崩溃的问题。

8.0.1.1.16

类别

说明

发布时间

问题修复

在ACL Cache Lock请求发生等待的时候,在master error log中打印请求线程和最早的锁持有线程的信息来辅助诊断问题。

2021-06-24

8.0.1.1.15

类别

说明

发布时间

新增和优化功能

  • TDE支持对集群中MySQL的新建表自动加密。

  • MySQL数据表支持utf8mb4_0900_bin字符集。

2021-05-25

问题修复

  • 修复了instant add column后回滚Update操作时产生的记录过长,进而导致数据库崩溃的问题。

  • 修复了避免mysql.slow_log、mysql.general_log被DDL语句强制使用innodb引擎造成混乱的问题。

  • 修复了REGEXP函数的元数据信息错误导致结果集错误的问题。

  • 修复了在虚拟列上回滚Update操作导致数据库崩溃的问题。

  • 调整RO节点在初次注册到主节点时是否要立即触发checkpoint的策略。当LSN差值小于规定的阈值时,可不触发checkpoint。

8.0.1.1.14

类别

说明

发布时间

新增功能和性能优化

  • 优化了海量表场景(如需要提供SaaS服务的场景)下对内部索引信息的维护,来提升只读节点的启动速度。

  • 优化GDN同步连接,减少同步线程对CPU资源的消耗,提升了小规格(即8核以下)从集群同步Redo日志的速度。

  • 优化了并行度控制参数中的AutoDop策略,以避免对PARALLEL HINT和force_parallel_mode的使用造成影响。

2021-04-23

问题修复

  • 修复当RANGE查询范围较广时,由于records_in_range统计信息不准确,导致使用了错误索引的问题。

  • 修复当进行按时间点恢复全量数据时,由于缓冲池过小导致Standby节点崩溃问题。

  • 修复X-Engine引擎内部元信息内存占用过高的问题。

  • 修复官方MySQL中2个关于ACL DDL的问题,避免由于ACL DDL操作带来的死锁导致集群不可用的问题。

  • 修复当并行查询中包含了SQL_BUFFER_RESULT关键字,且使用了聚集函数但没有GROUP BY时,会返回错误结果集的问题。

8.0.1.1.13.2

类别

说明

发布时间

问题修复

修复主备切换时,TDE加密表中的加密信息可能丢失导致解密失败的问题。

2021-04-19

8.0.1.1.13.1

类别

说明

发布时间

问题修复

修复并行查询中,由于未将Block Nested-Loop Join(BNL)算法中的常量过滤条件推到单表上,导致查询速度变慢的问题。

2021-04-08

8.0.1.1.13

类别

说明

发布时间

新增功能和性能优化

  • 只读节点支持polar_use_statement_mdl_on_replica参数,避免只读节点上的事务(RC隔离级别)堵塞主节点的DDL操作。同时,当只读节点上的读事务与主节点上的DDL并发时,读事务将会看到不同的表定义(例如在只读节点读事务的两条语句中间,主节点上存在ADD COLUMN操作,那么只读节点上的第二条语句将读到比第一条语句更多的列)。

  • 移除索引等值查找路径中不必要的等值条件,便于在ORDER BY LIMIT场景下将Limit offset下推执行。

  • 新增dbms_stats.gather_stats(timeout, workers)命令,支持通过事件调度或手动执行该命令来更新过时的直方图。

  • mysql.slow_log新增支持查看log_versionlog_idorigin_start_timerds_ext字段。

2021-03-30

问题修复

  • 修复当对X-Engine表执行CHECK TABLECOUNT(*)或DDL等命令时,无法终止查询的问题。

  • 将KICKOUT修改为非保留关键字。

  • 修复特定情况下,由于生成查询计划时评估扫描行数少于实际扫描行数,导致未充分进行并行查询的问题。

8.0.1.1.12.2

类别

说明

发布时间

问题修复

  • 修复在打开session_track_temporary_tables系统变量的情况下,在存储过程中创建或删除临时表会导致集群不可用的问题。

  • 引入官方MySQL 8.0.14的补丁,用于解决执行CREATE USER命令时,由于无法获取MySQL数据库系统表的元数据锁(MDL),导致CREATE USER语句被阻塞的问题。

2021-03-12

8.0.1.1.12.1

类别

说明

发布时间

新增功能和性能优化

优化在多表场景下持续导入数据时,PolarDB高压缩引擎(X-Engine)的写性能。

2021-03-02

问题修复

修复并行查询中,由于Leader线程缺失互斥锁(Mutex)保护,导致与Worker线程上的元数据锁(MDL)状态可能不一致的问题。

8.0.1.1.12

类别

说明

发布时间

新增功能和性能优化

  • 并行度控制策略新增auto_dop_low_degree_cost参数,用于设置并行查询的并行度选择策略,详情请参见并行资源控制策略配置

  • 新增支持通过restore_table命令,快速恢复回收站内的表,详情请参见表回收站

  • 支持从只读节点上获取Binlog,详情请参见远程获取并解析PolarDB MySQL版Binlog日志

  • 支持在opt trace中打印in_memory等关键信息,便于在执行计划出现问题时,定位问题原因。

2021-02-20

问题修复

  • 引入Port Percona补丁,用于解决高并发场景下,ACL CACHE 元数据锁冲突检测较慢的问题。

  • optimizer_switch系统变量中新增preferred_ordering_index参数,用于修复某些场景下(如使用了LIMIT子句的ORDER BY或GROUP BY查询),由于使用了有序索引,导致没有选择最优计划的问题。

  • 修复部分场景下SHOW PROCESSLIST结果不正确的问题。

  • 修复8.0.1.1.10之前的版本在执行小版本升级后,由于未更新系统表information_schame.KEY_COLUMN_USAGE的定义,导致系统表访问较慢的问题。

8.0.1.1.11

类别

说明

发布时间

新增功能和性能优化

  • 新增支持通过parallel_degree_policy参数来设置并行查询中并行度的配置策略,详情请参见并行资源控制策略配置

  • 新增支持通过SET GLOBAL语句设置max_digest_length参数值来限制可识别语句的长度。

    说明

    max_digest_length参数值修改后,客户端需要重新连接集群,新参数值才会生效。

  • innodb_adaptive_hash_index参数的默认值由ON改为OFF

2021-01-29

问题修复

  • 修复主节点和只读节点权限不一致的问题。

  • 修复主备切换后,只读节点无法连接到主节点的问题。

  • 修复当特定执行计划失效时,SPM的处理逻辑不正确的问题。

8.0.1.1.10

类别

说明

发布时间

新增功能和性能优化

  • 新增支持Group By的隐式排序功能,与在PolarDB MySQL版5.7版本上的用法一致。

  • 新增当存在Blob字段时禁用并行查询的功能。

  • 新增只读节点上自动更新语句级并发控制缓存信息的功能。

  • 新增热点行优化功能,详情请参见热点行优化

  • 新增支持DDL物理复制优化,详情请参见DDL物理复制优化

  • 新增支持并行元数据锁同步,详情请参见并行元数据锁同步

  • 新增当计算下推时快速反向遍历的功能。

  • 优化了文件系统,加快多表场景下表的打开速度。

  • 缩短了多表场景下的主备切换时间,加速新主节点的恢复。

2021-01-12

问题修复

  • 修复当只读节点升级为主节点时出现的系统表丢失的问题。

  • 修复开启并行查询后,使用范围查询时会导致评估扫描行数过多的问题。

  • 修复当字段类型为BIT时,聚合查询的结果为整型的问题。

  • 修复使用枚举字段后,通过SELECT DISTINCT查询返回的结果不正确的问题。

  • 修复使用EXISTS条件的并行查询结果出现异常的问题。

  • 修复某些情况下只读节点重启失败的问题。

  • 修复当只读节点执行DDL时,因外键关联表在打开表时把正在执行的DDL表也重新打开,导致数据字典中表信息异常的问题。

  • 修复因主备切换后未正确设置节点重启标志,导致全文索引查询失败的问题。

  • 修复因元数据锁(MDL)导致只读节点上日志应用线程被阻塞的问题。

  • 修复因释放的内存被复用导致主备切换后,新的主节点不可用的问题。

  • 修复因polar.info数据问题导致所有节点不可用的问题。

  • 修复分区表自增列异常的问题。

  • 修复主节点出现Redo log被覆盖写导致数据出错的问题。

  • 修复当主节点等待元数据锁(MDL)时,主节点不可用的问题。

  • 修复在使用透明数据加密(TDE)时的相关问题。

  • 修复在执行Lock Table并开启表回收站功能时出现集群不可用的问题。

  • 修复主节点在执行DDL时出现死锁的问题。

  • 修复线程池和连接控制无法同时生效的问题。

2020

8.0.1.1.9

类别

说明

发布时间

新增功能和性能优化

取消将SPMPLAN设置为关键字,避免出现因表名包含这两个词而无法操作的问题。

2020-12-18

8.0.1.1.8

类别

说明

发布时间

新增功能和性能优化

  • 执行计划管理器新增多计划模式。

  • 新增系统变量rds_ap_threshold参数,来阻拦优化器评估扫描记录数太多的请求。

  • 提升了主节点的脏页落盘效率。

  • 新增Redo多分片写入机制。

2020-12-09

问题修复

  • 修复并行查询执行过程中出现元数据锁(MDL) key空指针的问题。

  • 修复当创建并线线程缓存时出现查询失败的问题。

  • 修复并行查询MRR(Multi-Range Read)返回结果异常的问题。

8.0.1.1.7

类别

说明

发布时间

新增功能和性能优化

  • 提升了JOIN查询等场景中,被驱动表并行扫描的效率。

  • 新增支持在关闭Binlog情况下,依然能够清理残留的Binlog文件。

  • 新增Slave节点物理复制断开自动检查重连机制,避免出现长时间的物理复制断开。

  • 提升了主节点和只读节点间的切换效率。

  • 支持快速启动包含大量表的集群,方便快速扫描表数据文件。

2020-11-16

问题修复

  • 修复在获取trx->wait_lock的类型时出现集群崩溃的问题。

  • 修复在打开多队列Simulated AIO时,AIO线程存在数量上限的问题。

  • 修复当查询索引遇到初始化查询失败时,无法直接结束查询的问题。

  • 修复Slave节点在SMO(Split Merge Operation)过程中,当前游标的Next Page指向了一个不存在的Page的问题。

  • 修复只读节点会读取到已被主节点覆盖的日志信息的问题。

  • 修复因Redo日志中时间戳间隔过大导致清理Redo文件失败的问题。

  • 修复释放元数据锁(MDL)时未清除相关缓存中表缓存信息的问题。

8.0.1.1.6

类别

说明

发布时间

新增功能和性能优化

  • 提升了SPM(SQL plan manager)和并行查询的兼容性。

  • 提高了并行查询归并排序的效率。

  • 支持删除操作的计算下推工作。

  • 支持PolarDB Commit Timestamp(CTS)功能。

2020-09-21

问题修复

  • 修复pq_optimize_switch描述不正确的问题。

  • 修复子查询不能被稳定执行的问题。

8.0.1.1.5

类别

说明

发布时间

新增功能和性能优化

  • 当只读节点和主节点建立复制关系时,新增主节点是否需要立即执行checkpoint策略的功能。

  • 支持简单的范围查询和计算下推工作。

  • PFS(Polar file system)文件系统新增pfs_remount功能,避免了因文件未关闭导致无法挂载PFS文件的问题。

  • 解决了只读节点上由于Parse线程强制停顿造成的性能瓶颈问题,提升了物理复制过程中数据同步的效率。

  • 优化了多连接场景下的Early Lock Release性能,多连接场景下的集群性能提升至原来的10倍。

2020-08-19

问题修复

  • 修复只读节点在连接主节点失败后的不可用问题。

  • 修复在使用全文索引并执行DDL查询语句后,会导致的只读节点在主备切换后不可用问题。

  • 修复执行UNDO TRUNCATE命令后导致的无法进行purge binlog问题。

  • 修复只读节点和主节点间统计信息不一致的问题。

8.0.1.1.4

类别

说明

发布时间

新增功能和性能优化

  • 支持并行DDL,提升DDL执行效率。

  • 支持Simulated AIO动态调整多队列的长度。

  • 支持全文搜索(Full Text Search,FTS)缓存一致性。

  • WHERE条件中支持含有聚集函数的子查询,且若子查询支持基于索引的扫描,那么该子查询还可以支持并行执行。

  • 临时表和普通表一样支持进行lock mode检查。

2020-07-04

问题修复

  • 修复当主节点降为备节点时,因部分DDL仍在复制中而导致的集群不可用问题。

  • 修复因为开启线程池导致的性能下降问题。

  • 修复purge binlog导致死锁的问题。

  • 修复若干内存泄漏的问题。

  • 修复若干在高可用场景中出现的问题。

8.0.1.1.3

类别

说明

发布时间

新增功能和性能优化

  • 增强安全性(如密码管理)。

  • 提升如下场景中并行查询(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文件的大小,避免影响线上服务。

2020-05-29

问题修复

  • 修复当达到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

类别

说明

发布时间

新增功能和性能优化

  • 支持基于字符串前缀的排序优化方法(即优先使用字符串前缀进行排序,如果前缀相同,再使用字符串的全长进行排序)。对长字符类型的列进行排序时,可以通过指定该列值最大不同的前缀长度来加速比较,减少排序时间。

  • 新增在如下场景中支持并行查询的能力:

    • 支持Range Cost的估算模型的并行。

    • 支持Temporary Table表的并行。

    • 支持Semijoin物化Lookup和Scan的策略下的并行。

  • 增加了3类可以被PolarDB智能路由用来支持连接保持功能的会话状态tracker;同时,tracker打开后可以跟踪会话中user variable的改变、临时表的创建和删除、SQL语句中的prepare和dealloction操作等。

  • 优化DDL过程中Drop AHI的性能,降低DDL对集群性能的影响。

  • 增加表回收站的功能,避免出现因误删导致数据丢失的情况。

  • 优化在大缓冲池临时表空间truncate的表现,降低临时表操作对集群性能的影响。

2020-04-09

问题修复

  • 修复当聚合函数存在于IF函数中的场景下执行ROLLUP的问题。

  • 修复Blob类型在排序过程中的问题。

  • 修复并行中使用Prepare中包含聚合函数SQL的特定问题。

  • 修复并行查询下的若干问题。

  • 修复可能会清除过多Redo日志的问题。

  • 修复RO节点上Redo日志的相关问题。

8.0.1.1.1

类别

说明

发布时间

新增功能和性能优化

  • 支持在子查询含有ROLLUP的场景中使用并行。

  • 支持语句并发控制功能。

  • 增加POLARDB_INDEX的Hint。

  • 优化主节点和只读节点同步延迟。

  • 支持线程池(Thread Pool)

  • 支持TDE keyring_rds插件。

  • 支持全球数据库(GDN)

  • 优化无锁事务系统, 优化读写性能。

2020-03-28

问题修复

  • 修复并行查询下的若干问题。

  • 修复ONLINE DDL过程中统计信息可能为0的问题。

  • 优化用户态文件系统,加速集群启动。

  • 修复innodb_flush_method被设置为all_o_direct时可能会导致集群不可用的问题。

  • 修复事务提交放锁时可能会导致集群不可用的问题。

  • 修复慢日志truncate时可能会阻塞用户请求的问题。

  • 修复压缩页在RO上可能会导致集群不可用的问题。

  • 修复线程池可能会错误断开杀复制连接的问题。

8.0.1.1.0

类别

说明

发布时间

新增功能和性能优化

  • 增强并行查询的能力,支持企业级分析ROLLUP函数的并行计算。

  • 增加优化器的估算模型能力(如增强条件过滤的选择率和对并行查询的代价估算模型),被执行的SQL可以根据Selectivity更准确地选择并行计划还是串行计划。

  • 支持对按照FIFO模式分配工作线程的并行工作线程进行统一管理,避免大量并行查询造成系统资源耗尽的问题。

2020-02-05

问题修复

  • 修复并行查询的内存相关系列问题。

  • 修复并行查询下的若干不稳定问题。

8.0.1.0.6

类别

说明

发布时间

问题修复

  • 修复在主节点降为备节点时Binlog Index文件未关闭的问题。

  • 修复RO节点在访问已经被清除的Undo页时会出现集群不可用的问题。

  • 修复在RO节点进行主备切换时,后台线程访问到不存在表空间页面的问题。

  • 修复在集群关闭时由于日志线程已经退出之后还在写Redo日志导致的集群不可用问题。

2020-01-01

2019

8.0.1.0.5

类别

说明

发布时间

新增功能和性能优化

  • Optimizer trace中支持并行查询的相关信息(例如您可以通过Optimizer trace的工具分析为何使用并行或者未使用并行的原因)。

  • 增加并行查询相关的Hint,支持通过SQL Hint的方式显性启用并行和指定并行度。

  • 支持在READ COMMITTED下INSERT..SELECT的并行扫描,您可以使用INSERT..SELECT语句将导入的数据加入到另一个表。

2019-12-03

问题修复

  • 修复并行查询下的若干问题。

  • 修复在主备切换时,备节点升级为主节点时出现的节点不可用的问题。

  • 修复在主备切换时因使用部分DDL语句引起故障的问题。

  • 修复锁限制导致报错too many connection error的问题。