多主集群(Limitless) 8.0.1版本发布日志

本文将详细介绍PolarDB MySQL多主集群(Limitless)8.0.1版本的更新日志和全部的功能特性。

2025

8.0.1.0.37

类别

说明

发布时间

新增功能和性能优化

  • 新增数据清理(TTL)功能,支持设置过期时间,超过过期时间数据自动过期。

  • 新增窗口函数支持frame语句,目前支持当前Rows frame和默认的Range frame场景。

  • 新增支持以Online DDL方式修改高压缩引擎(X-Engine)的自增列值。

  • 新增Pruner统计指标,通过查询INFORMATION_SCHEMA.IMCI_SQL_PROFILING视图中获取TableScan算子的数据块剪枝(Pruning)情况。

  • 新增EXPLAIN DDL功能,该功能可帮助用户查询特定DDL语句的执行特征。

  • 新增参数adaptive_digest_length_multiplier,实现根据SQL文本长度动态调整Digest预分配内存大小的功能。

  • 新增列存索引(IMCI)Hybrid Plan功能的扩展,使其支持未显式定义主键的表。

  • 优化列存索引(IMCI)Hybrid PlanIndex JoinSemi JoinAnti Semi Join模式的支持。

  • 优化列存索引(IMCI) HASH JOIN构建Hash表的过程,HASH表的具体实现,大幅提高列存索引(IMCI) HASH JOIN性能。

  • 优化列存索引(IMCI)查询在IN-List时,提高查询性能。

2025-06-09

问题修复

  • 修复列存索引(IMCI)内部线程池在弹性缩容过程中产生的内存泄露的问题,有效避免Serverless集群在PCU(PolarDB Capacity Unit)动态调整时出现内存泄漏。

  • 修复列存索引(IMCI)中运行时关闭Hybrid Plan时可能导致崩溃的问题。

  • 修复并行解析模式下可能导致时间点还原操作无法保证幂等性的问题。

  • 修复库表恢复分区表包含instant add column并且分区数量大于等于10个,在恢复完成后访问可能出现的问题。

  • 修复列存索引构建期间增量物理日志回放计数统计错误的问题。

  • 修复INSTANT DDL提交后,基于老版本的列存索引信息更新任务触发断言的问题。

  • 修复Prepare Execute实现字符串类型使用character_set_clientCollation信息的问题。

  • 修复列存索引(IMCI)引擎在处理大规模变长字符串GROUP BY操作时可能引发的内存溢出(Out Of Memory)问题。

  • 修复自适应分流机制会将包含不支持的自定义函数的查询请求路由至列存引擎的问题。

  • 修复并行查询(PQ)和performance_schema功能时,高并发场景下可能导致集群崩溃的问题。

  • 修复添加不必要的唯一键(UK)索引事务锁导致的死锁问题。

  • 修复列存索引(IMCI)在加载NCI(Non-Clustered Index)期间执行DROP INDEX操作可能导致加载过程阻塞的问题。

  • 修复列存节点的快照保持功能中,原有的锁粒度较大可能导致长时间的锁等待,进而引发监控模块的偶发性卡顿问题。

  • 修复CTE(Common Table Expression)与Semi JoinDuplicateWeedout算法在使用BNL(Block Nested Loop)执行策略时可能导致进程崩溃的问题。

  • 修复Fast Import特性分区表和即时列(Instant Column)时存在的兼容性问题。

  • 修复列存索引(IMCI)混合物化Mixoutput读取timestamp类型数据未做时区转化的问题。

  • 修复使用imci_analyze_query进行列存索引(IMCI)查询性能分析时,偶发性计时不准确的问题。

  • 修复DDL操作后,列存节点偶发访问到DDL前缓存数据的问题。

  • 修复对存在虚拟列表执行ONLINE DDL时偶发的ROW LOG读写越界问题。

  • 修复列存索引(IMCI)多机共享架构下偶发的ImciFollower内存数据块堆积的问题。

  • 修复当GROUP BY子句中的列包含表达式时,WITH ROLLUP可能无法正确输出NULL值的问题。

8.0.1.0.35

类别

说明

发布时间

新增功能和性能优化

  • Serverless功能只读节点(RO)新增parse buf(解析日志内存块)无用内存回收功能,可降低部分内存使用率。

  • 新增在多主集群(Limitless)下支持Redo日志异步IORedo日志分区IO(Partition IO)功能。

  • 新增控制配置自适应执行行列自动分流的代价阈值。

  • 新增列存索引(IMCI)查询优先级调度功能,支持为列存查询指定优先级。

  • 新增一个新参数控制自适应行列分流的代价阈值。

  • 优化查询优化器对子查询的处理逻辑,显著提升列存索引(IMCI)在处理复杂INEXISTS子查询时的性能。

  • 优化列存索引(IMCI)中,Hash Groupby的实现机制,实现根据数据分布特征自适应选择分区策略与算法提升查询性能。

  • 优化高并发下使用max_execution_time参数时,数据库性能变差的问题。

2025-03-31

问题修复

  • 修复只读节点上访问空间索引可能获取到重复数据的问题。

  • 修复多主集群备节点在节点前切换数据库或对象访问点时可能会出现崩溃的问题。

  • 修复子查询含有Having关键字时并行查询结果可能出错的问题。

  • 修复在开启多版本引擎功能时,Redo负载比较低的场景下,只读节点(RO)上的读请求会变慢的问题。

  • 修复列存索引(IMCI)在处理带有ROLLUP的查询时,无法通过开关(imci_implicit_orderby_rollup)控制对查询结果进行排序的问题。

  • 修复多主集群有全局只读节点情况下,新增读写节点导致新节点启动失败的问题。

  • 修复Redo Cache功能在读取边缘Redo日志时可能读取到脏数据的问题。该问题会导致Redo日志的合法性检查失败,进而引发集群崩溃。

  • 修复当存储的数据块中所有的数据都相同时,查询有可能触发异常的问题。

  • 修复在BLOB优化写入过程中,由于意外崩溃导致无法执行IMPORT TABLESPACE操作的问题。

  • 修复列存索引(IMCI)SQL子查询时不支持LIMIT 1查询限制问题。

  • 修复库表恢复源表存在列存索引可能导致的任务中断的问题。

  • 修复列存索引(IMCI)Serverless集群在主节点规格较大时产生缩容问题。

  • 修复开启集群非阻塞DDL情况下,小概率执行Kill DDL对应的连接,语句无法正常退出问题。

  • 修复列存索引(IMCI)中开启全局强一致(高性能模式)后,查询偶发无法使用Hybrid Plan而导致查询报错的问题。

  • 修复列存索引(IMCI)执行SELECT DISTINCT查询时,存在non-full-groupby情形的兼容性问题。

  • 修复列存索引(IMCI)内存弹性的一系列问题提升内存利用效率以及集群的稳定性。

  • 修复在并行查询场景下,当带有排序的物化表被合并到外层查询时,可能导致集群崩溃的问题。

  • 修复列存节点在大事务执行过程中集群重启,崩溃恢复过程中有较低概率引发的列存索引数据冗余问题。

  • 修复库表恢复功能和文件空间扩展不填0功能的兼容问题。

  • 修复使用空间扩展不填0特性可能导致的库表恢复任务流程中断问题。

  • 修复创建在Virtual Column上的二级索引可能出现的索引损坏问题。

  • 修复只读节点执行Show Binlog Events报错文件不存在的问题。

8.0.1.0.34

类别

说明

发布时间

新增功能和性能优化

  • Delete语句新增支持Index Hint,即通过USE INDEX、FORCE INDEXIGNORE INDEX语法指定特定索引的使用。

  • 新增加密函数SM4_encrypt()/SM4_decrypt()实现SM4算法的字段级访问加密。

  • 库表恢复新流程支持快速全量数据查询,查询性能不受恢复数据量大小影响。

  • 新增大宽表支持,扩展高压缩引擎(X-Engine)支持表的最大列数为10000列。

  • 新增参数ccl_check_with_super_user设置为OFF时,超级用户执行匹配CCL规则的语句时系统将生成警告信息(WARNING)。

  • 优化高性能全局一致性相关变量的设置从系统级别调整为Connection级别,支持在数据库代理中配置是否开启。

  • Explain结果中新增显示被调用的Outline ID,同一语句调用多个Outline用逗号分割。

  • 新增物理复制并行解析Redo功能,提升物理复制性能。

  • 支持IN子查询多层嵌套的复杂查询在列存节点上使用列存加速执行。

  • 优化SHOW VARIABLES时的全局互斥锁,提升高并发下的性能。

  • 优化列存索引(IMCI)在海量表场景下的启动时间过长。

  • 优化高压缩引擎(X-Engine)DDL场景自动打开X-Engine引擎的预提交功能。

2025-01-20

问题修复

  • 修复CREATE TABLE AS SELECT语句创建临时表时集群崩溃问题。

  • 修复算法选择中不必要的限制,目前部分关联子查询可以选择高效的HASH JOIN算法执行查询。

  • 修复开放Session级别binlog_rows_query_log_events权限,支持使用DMS执行SQL备份与回滚。

  • 修复只读节点gtid_purged变量没有与主节点同步的问题。

  • 修复高压缩引擎(X-Engine)DDL变更后,旧表空间回收泄露问题。

  • 修复Serverless集群RO节点内核支持0.25 PCU下限功能。RO(只读节点)和RW(读写节点)规格同步过程中导致RO节点缩容至0.25PCU。

  • 修复在DDL SCAN阶段无法获取MDL锁,仅显示错误信息而无法恢复列存索引数据的问题。

  • 在数据库表数量较多的情况下,修复多主集群可能导致读写节点出现不可服务的情况。

  • 修复IMCI查询中常量范围过滤(const between field1 and field2)场景下的索引选择错误问题。

  • 修复因未使用区分大小写的字符串比较函数而导致带name过滤条件的IMCI I_S(Information_Schema库下IMCI相关视图)查询结果不完整的问题。

  • 修复多主集群环境中执行TRUNCATERENAME表操作时可能导致的集群阻塞问题。

  • 修复多主集群场景列存索引Online DDL过程未适配LLSN(Logical Log Sequence Number)逻辑导致漏回放列存Redo日志的问题。

  • 修复通过列存索引(IMCI)读取JSONGIS大字段时可能出现偶发数据读取失败的问题。

  • 修复高压缩引擎(X-Engine)只读节点重启时非预期清理数据块元信息问题。

  • 修复列存索引(IMCI)分区表查询期间,执行explain for connection语句导致的崩溃问题。

  • 修复设置flagset类型变量如(optimizer_switch)时,存在重复项将不再报错的问题。

  • 修复连接数超过65536MDL锁系统可能出现异常的问题。

  • 修复多主集群在删除数据库时,可能导致整个集群卡死的问题。

  • 修复在多表更新语句中,社区低版本未能正确优化连接顺序的问题。

2024

8.0.1.0.33

类别

说明

发布时间

新增功能和性能优化

  • 多主集群支持局部只读节点,提供读压力分担和高可用切换功能。

  • 新增资源管理使用说明功能,实现UserDatabase级别进行CPU资源隔离。

  • Outline中新增支持分表场景的功能,单条Outline可以匹配所有具有相同模板的语句,适用于不同的分表。

  • 新增在执行过程中根据实际情况动态调整Order Index选取结果的能力。

  • 新增物理复制并行解析Redo功能,提升物理复制性能。

  • 支持通过修改COMMENT中的pack_shift来直接重建列存索引无需提前删除。

  • 优化SQL Trace,使得Call procedure时可以正确记录SQL及执行计划。

  • 优化列存只读节点的启动速度,支持列存引擎从列存快照位点独立启动。

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

  • 优化逻辑预读的线程启动和销毁代码,简化内存检查逻辑。

2024-11-28

问题修复

  • 修复部分查询中,未充分利用唯一索引进行加速的问题。

  • 修复在使用SUBSTRING_INDEX表达式处理GROUP_CONCAT输出的空字符串时,且当分隔符长度大于1时,存在崩溃的可能性。

  • 修复CAST(REGEXP_SUBSTR(...)) AS DECIMAL语句导致进程崩溃的问题。

    修复REGEXP_SUBSTR可能返回NULL标记错误的问题。

  • 修复同时使用ALTER TABLE DROP语句删除多个全文索引(FTS)时可能导致元信息残留的问题。

  • 修复dlm_policies系统表的建表语句被记录在BINLOG中,导致下游同步失败的问题。

  • 修复RO重新连接RW后可能出现RO持续不对外提供服务的问题。

  • 修复在列存索引(IMCI)中,当多个运行时过滤器下推到同一个表时状态设置错误的问题。

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

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

  • 修复在扩展VARCHAR列长度时,由于指定了DEFAULT值,导致的不必要的索引重建问题。

  • 修复IMCIServerless集群中与内部内存弹性兼容性、扩缩容异常等问题。

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

  • 修复自适应执行中对于特定类型的Query不能正确路由的问题。

  • 修复库表多写集群批量加列存索引功能,未完全适配DDL全局锁导致崩溃的问题。

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

  • 修复JSON_TABLE存在NULL Field场景下导致查询崩溃的问题。

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

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

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

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

  • 修复Digest CCL不支持PS(Prepared Statements)协议的问题。

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

  • 修复多主Buffer Pool Resize和事务访问块冲突问题,并优化多主Buffer Pool RDMA registerunregister的性能。

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

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

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

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

8.0.1.0.32

类别

说明

发布时间

问题修复

修复多主Buffer Pool Resize和事务访问块冲突问题,并优化多主Buffer Pool RDMA registerunregister的性能。

2024-10-14

8.0.1.0.31

类别

说明

发布时间

新增功能和性能优化

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

  • 新增字符串转换函数convert_sys_to_filename()convert_filename_to_sys(),用于system_charset_info编码和my_charset_filename编码之间进行转换。

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

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

  • 优化列存节点在海量表场景下的启动时间过长。

  • 优化列存节点Serverless流程,新增列存节点支持索引就绪之后才被加入Proxy节点承担业务流量。

  • 优化列存索引(IMCI)大事务的性能和内存用量。

  • 优化了列存索引(IMCI)中物化HASH KEY的表达式的性能。

2024-09-13

问题修复

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

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

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

  • 修复使用SPATICAI KEY时候,事务回滚需要悲观删除该索引可能导致陷入死循环,导致成持锁过长的问题。

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

  • 修复IMCI一写多读在开启使用Hybrid Plan加速宽表查询时异步重建列索引循环等待的问题。

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

  • IMCIi_s.imci_index_stats表新增PRUNED_PERCENT字段,表示每个列索引Data Skipping比例。

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

8.0.1.0.30

类别

说明

发布时间

新增功能和性能优化

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

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

  • OSS冷数据新增支持TDE功能。

  • 动态优化BUFFER POOI缩容时锁冲突,减少锁持有时间。

  • 新增对 Kerberos 协议认证的支持。

  • 新增支持自定义比例对审计日志采样,仅记录一定比例的审计日志。

  • 新增支持通过原生存储过程(native procedure)为指定数据库中的所有表批量创建列存索引(IMCI)

  • 优化列存索引(IMCI)统计信息采样机制,提高了采样频率与采样数据的比例,优化了低基数列的采样逻辑,避免出现统计信息不准确导致查询未被充分优化的场景。

  • 优化Simulated-AIO异步性能阻塞模块。

  • 优化大数据量下UnionAll的性能表现。

  • 优化IMCIDate类型字段的读取性能。

  • 优化列存索引(IMCI)大事务回放性能。

2024-08-16

问题修复

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

  • 修复GROUP BY可能导致临时表报错table is full的问题。

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

  • 修复列存索引(IMCI)Join Elimination功能存在的兼容性问题。

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

  • 修复带有全文索引的表上修改COMMENT添加列存索引无法使用异步DDL的问题。

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

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

  • 修复分区表在HA后出现Autoinc回退问题。

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

  • 修复多主集群下访问统计信息表可能会导致集群奔溃的问题。

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

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

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

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

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

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

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