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

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

2025

8.0.2.0.6(2025.10.14

新增功能

说明

  • 新增多主集群分区表支持数据清理(TTL)

  • 新增列存索引(IMCI)向量检索支持inline filter模式。

  • 新增列存索引(IMCI)后台创建向量索引的并发度管理与状态查询功能。

  • 新增在不改变列存索引(IMCI)状态下,支持对向量索引进行新增、删除和修改操作。

  • 新增CXL内存扩展功能。该功能允许通过CXL(Compute Express Link)内存池为数据库的buffer pool动态扩容。

  • 新增snapshot update特性以兼容PostgreSQL行为。该特性通过参数innodb_polar_use_snapshot_update(支持会话级和全局级)开启后,能在特定更新场景下优化执行路径,显著提升UPDATE语句的执行效率。

  • 新增整型字段(BIGINTINTMEDIUMINTSMALLINTTINYINT)在未定义ZEROFILL属性时,可配置是否显示display width属性。

  • 新增二级分区支持RANGE COLUMNSLIST COLUMNSLIST COLUMNS + DEFAULT类型。分区键支持DATEDATETIMECHARVARCHARBINARYVARBINARY等多种数据类型,并支持分区剪枝优化。至此,PolarDB MySQL支持一级和二级分区的任意组合,为复杂数据模型提供了更灵活的分区策略。

  • 新增列存索引(IMCI)支持基于FAISS库的HNSWHNSWPQ两种向量索引类型。HNSW适用于高精度、低延迟的向量检索场景,而HNSW_PQ则在保持较高召回率的同时,通过量化技术大幅降低内存占用。

  • 新增兼容Oracle的同义词(SYNONYM)功能。可以为表(TABLE)或视图(VIEW)创建同义词,并通过同义词直接进行数据操作,简化SQL编写并提高数据库对象的兼容性。

  • 新增可借助列存索引(IMCI)加速刷新的全量物化视图。

  • 新增SQL Trace支持采样并记录实际执行的SQL语句。该功能可以将采集到的长SQL或慢SQL存入shared SQL,便于开发和运维人员对这类问题进行精确排查和性能分析。

  • 新增embedding表达式,可将输入文本实时转换为向量。同时支持通过物化虚拟列的方式,在数据写入时自动将用户输入的文本内容转换为向量并存储,简化了AI应用的开发流程。

  • 新增对行存和列存执行算子内部所有操作的耗时测量功能。该功能为行列混合执行的代价模型优化提供了精确的数据支持,有助于持续提升查询优化器的智能决策能力。

  • 新增在outline系统表中记录原始SQL语句的功能。同时可以在当前环境中根据记录的原始SQL重新生成outline,用于SQL执行计划的固化与演进。

  • 新增自动归档冷数据(DLM)支持将带有列存索引(IMCI)的分区表归档至OSS外表。

  • 新增动态开关,用于控制只读(RO)节点上的游标位置调整功能。

  • 新增列存索引(IMCI)支持列存全文索引。该功能利用列存技术加速文本的模糊搜索,相比传统行存全文索引,能够为日志分析、文本检索等场景提供更优的查询性能。

  • 新增大查询临时表对本地磁盘空间使用的控制。通过新参数rds_max_tmp_disk_space,可以限制因复杂查询产生的临时文件所占用的磁盘空间总量,防止因个别大查询耗尽磁盘资源而影响集群稳定性。

  • 新增自动归档冷数据(DLM)支持将分区表中的分区自动归档至高压缩引擎(X-Engine)。归档后,表将成为InnoDBX-Engine的混合分区表,支持跨存储引擎的混合查询。

  • 新增dbms_oss.delete_table_file命令在表结构删除后,支持清理分区表对应的OSS文件。

  • 新增对于非列存索引只读节点,允许在开启imci_ignore_unsupported_isolation_level参数时,将会话隔离级别为Read Uncommitted的查询强制转发至列存索引只读节点执行。

  • 新增Orca(兼容Redis协议)支持RedisPUBSUB(发布/订阅)相关命令,包括PUBLISHSUBSCRIBEUNSUBSCRIBEPSUBSCRIBEPUNSUBSCRIBEPUBSUB CHANNELSPUBSUB NUMPATPUBSUB NUMSUB

  • 新增Orca(兼容Redis协议)的资源控制功能。可通过参数管理Orca系统整体的CPU资源使用率(默认为100%),实现更精细化的资源隔离与管控。

  • 新增数据清理(TTL)copy类型DDL的支持,此前TTL仅支持inplace类型的DDL。

性能优化

说明

  • 优化行列分流的代价计算模型,允许优化器基于串行执行开销而非并行优化后的代价来决策是否进行行列分流。

  • 优化优化器的谓词推演(deduce_predicates)逻辑。当推演出新的静态分区条件时,能够触发再次进行分区剪枝,从而进一步减少扫描的数据量,提升分区表查询性能。

  • 优化Orca(兼容Redis协议)功能的内部命令处理结构与锁路径。本次优化提升了Orca处理Redis命令的效率,使其整体读写性能提升约10%。

  • 优化查询优化阶段的条件处理逻辑。修复了因查询条件优化(如MEP)产生的新分区键常量条件无法触发再次分区剪枝,以及nested outer join的内表无法进行分区剪枝的问题,显著提升了分区表的查询性能。

  • 优化了在海量数据场景下列存索引只读节点重启时的元数据加载过程。通过改进处理方式,避免了因元数据列表过长导致的内存溢出(OOM)问题,提升了集群的稳定性。

  • 优化列存索引(IMCI)向量索引的内存和存储空间使用效率。

问题修复

说明

  • 修复在按时间点恢复(PITR)或库表恢复场景下,备(Standby)节点可能在恢复(Recovery)阶段卡住的问题。

  • 修复在主(RW)节点上执行show polar standbys命令时,查询到的备(Standby)节点延迟时间(delay_second)不准确的问题。

  • 修复查询改写进行列裁剪时,若多个投影列引用同一个子查询,可能错误地移除该子查询,导致其他投影列求值时引发进程崩溃的问题。

  • 修复新注册的只读(RO)节点在高可用切换后,执行DDL语句报告SDI(Serialized Dictionary Information)修改失败的问题。

  • 修复在特定边界条件下,查询长度较大的JSON字段时,只读(RO)节点因innodb_blob_slave_read_consistent功能缺陷而返回The JSON binary value contains invalid data错误的问题。

  • 修复非bigint类型的整数列统计信息可能不准确的问题。此问题曾导致查询优化器无法生成最优的执行计划。

  • 修复列存索引(IMCI)中,向量检索查询可能异常回退至行存执行,以及优化器对标量过滤查询代价估算不准的问题。

  • 修复只读(RO)节点切换为主节点后,binlog dump连接可能卡住的问题。此问题会导致binlog文件无法被及时清理,可能造成存储空间堆积。

  • 修复旧版本集群在开启自适应聚合功能后,查询可能偶发崩溃的问题。

  • 修复在高写入压力下,B-Tree索引进行结构调整期间,只读(RO)节点可能无法查询到部分记录的问题。

  • 修复包含递归CTE(Common Table Expressions)的查询在特定场景下无法在列存索引(IMCI)上执行的问题。

  • 修复只读(RO)节点在读取大JSON字段或被频繁部分更新的JSON字段时,可能出现的查询结果异常问题。

  • 修复在大写入压力下,HA切换可能导致集群因无初始化扩展功能而崩溃的问题。

  • 修复列存索引(IMCI)NCI在插入LRU缓存失败时,未能自动触发扩容导致写入失败的问题。

  • 修复当查询变换将AVG函数转换为SUM/COUNT后,列存索引(IMCI)Hybrid Plan会异常回退至行存执行的问题。

  • 修复在处理完条件下推后并行查询可能导致集群崩溃的问题。

  • 修复清理了关于压缩行状态的不必要内部检查,以避免在特殊情况下触发非预期的问题。

  • 修复列存索引(IMCI)向量索引在数据文件清理不及时的情况下,可能导致存储空间异常增长的问题。

  • 修复为无主键但包含唯一键(unique key)的表添加列存索引(IMCI)时,可能导致异常的问题。

  • 修复dbms_oss.list_table_file命令在特定场景下展示结果不正确的问题。

  • 修复当带有列存索引(IMCI)ORC混合分区表表名中包含特殊字符时,执行DDL操作可能导致集群崩溃的问题。

  • 修复因Item_sum_sum::resolve_type函数对dec_buffs成员初始化异常,导致聚合函数在行存执行阶段出现内存访问异常的问题。

  • 修复多主集群(Limitless)在大查询压力下,查询性能可能下降的问题。

  • 修复Orca(兼容Redis协议)功能处理LPOS命令时,若指定的MAXLEN选项超过list本身长度,可能导致集群崩溃的问题。

  • 修复ORC格式的冷存表在读取数据时存在的内存泄漏问题。

  • 自动归档冷数据(DLM)将分区归档至OSS外表时权限校验过严的问题。修复后,拥有该OSS外表INSERTCREATEDROPALTER权限的普通用户即可操作,无需高权限账号。

  • 修复因字符集长度不一致导致优化器无法进行常量条件传递,从而影响查询性能的问题。

  • 修复部分查询因内存使用量估算不准而导致OOMError执行失败的问题。

  • 修复一个在事务回滚时极小概率发生的,可能导致二级索引损坏的purge过程问题。

  • 修复为带有列存索引(IMCI)的表执行online DDL时,默认的批量写入方式可能导致主(RW)节点内存溢出的问题。

  • 修复当UNION查询中包含大量同层query block时,find_cloned_select_lex函数耗时过长,占满单核CPU的性能问题。

  • 修复多主集群(Limitless)在高可用切换期间,备节点与主节点切换可能导致集群崩溃的问题。

  • 修复多主集群(Limitless)执行CREATE ... IF NOT EXISTS语句后,CC(Cluster Controller)节点的gtid_executed出现空洞的问题。

  • 修复列存索引(IMCI)中,当查询同时包含DISTINCTAVG聚合函数时,可能返回错误结果的问题。

  • 修复Item_func_conv_charset函数的result_fieldSQL结束后未被清理,导致在prepare statement中重复执行时引发集群崩溃的问题。

  • 修复因全局变量初始化顺序问题,导致列存索引(IMCI)的一写多读架构下,follower节点的文件操作被错误禁止的问题。

  • 修复在存在递归公共表表达式(CTE)时,列裁剪优化可能导致集群崩溃的问题。

  • 修复弹性并行查询(Elastic Parallel Query)中,当存在多层shared子查询嵌套时,MPP跨机执行可能引发结果不正确或集群崩溃的问题。

  • 修复统一了列存索引(IMCI)部分本地文件的命名方式,使其不再区分节点角色,以简化角色变更时的文件管理。

  • 修复多主集群(Limitless)的本地只读(RO)节点热切换为可读写(RW)节点后,对列存索引表进行增删改操作可能触发RW节点崩溃的问题。

  • 修复列存索引(IMCI)deltastore通过控制swap任务大小,解决了pax页长度溢出和swap过程中可能出现的空指针引用问题。

  • 修复query cache在多线程并发访问下,可能访问非法内存导致崩溃的问题。

  • 修复在执行ORDER BY DISTANCE进行向量检索时,对于极端接近于0的距离值可能出现排序错误的问题。

  • 修复自适应执行能力功能在处理带有LIMIT OFFSET的语句时无法正确生效的问题。

  • 修复多主集群(Limitless)在高可用切换场景下,可能导致集群无法启动或数据无法持久化的问题。

  • 修复列存索引(IMCI)instant DDL期间,释放索引时可能产生野指针访问的问题。

  • 修复并行查询在多层derived table嵌套场景中,可能触发崩溃的问题。

  • 修复列存索引(IMCI)Delta模块在序列化时,由于对回滚行的判断存在遗漏,导致访问空指针而引发集群崩溃的问题。

  • 修复在基于代价的查询改写中,当SQL同时包含inline view和标量子查询时,改写过程有概率触发集群崩溃的问题。

  • 修复在IN-LIST非常长的情况下,查询可能无法被正确路由到列存索引(IMCI)执行的问题。

  • 修复prepare statement模式下的语句在某些场景下,无法被正确路由到列存索引(IMCI)执行的问题。

  • 修复在开启imci_implicit_orderby_rollup参数后,部分查询无法被正确分发到列存索引(IMCI)执行的问题。

8.0.2.0.5(2025.06.30

新增功能

说明

  • 新增列加密功能。该功能支持对指定列的数据进行加密存储,增强数据安全性。在访问加密数据时,可通过内置的解密函数获取原始明文数据。

  • 新增DELETE语句支持索引,可通过USE/FORCE/IGNORE INDEX语法为DELETE操作指定或忽略索引。该功能通过delete_enable_index_hint参数控制。

  • 新增列存索引(IMCI)向量检索能力。通过创建向量索引,可利用内置的ANN(近似最近邻)算法进行高效的相似性搜索,适用于图片检索、文本分析和推荐系统等需要向量化匹配的场景。

  • 新增在INSERT ... ON DUPLICATE KEY UPDATE语句中支持为新插入行使用别名(Alias)的功能,使得在UPDATE子句中可以更便捷地引用VALUES中的新值。

  • 新增IN-LISTOR表达式的查询改写能力。优化器可以将这类表达式扩展为UNION,从而更高效地枚举并选择基于索引的访问计划,提升特定查询场景的性能。

  • 新增Lateral派生表的并行执行能力。在启用并行查询的场景下,Lateral派生表的计算可以下推到Worker节点并行处理,提升复杂关联查询的执行速度。

  • 新增列存索引(IMCI)支持JSON_ARRAYAGG聚合函数。该函数可将多行中的JSON或非JSON值聚合为一个JSON数组,增强了对JSON数据的分析处理能力。

  • 新增支持对包含ROLLUP的聚合查询下推至列存索引(IMCI)执行,前提是其投影列中包含带有聚合函数的子查询。

性能优化

说明

  • 优化列存索引(IMCI)执行窗口函数(Window Function)的性能。当查询中包含多个定义了相同PARTITION BY子句的窗口函数时,系统会将这些函数合并进行计算,避免了重复的数据分区和排序操作,从而显著提升复杂分析查询的执行效率。

  • 优化列存索引只读节点后台自动弹性线程池的资源消耗。通过改进获取任务状态的逻辑,降低了线程池在空闲或轻载状态下的CPU占用率。

  • 优化列存索引只读节点的下线流程。通过引入异步处理和流式控制机制,对下线后残留的垃圾文件清理操作进行优化,减少了对在线业务的影响并加快了节点下线速度。

  • 优化列存索引(IMCI)HashJoin算子的性能。通过改进哈希表的内部实现和构建过程,大幅提升了HashJoin在处理大规模数据关联时的执行效率。

  • 优化查询优化器对包含LIMIT子句的查询代价估算模型。新的估算模型更精确地修正了除ORDER BYGROUP BY场景外的LIMIT查询代价,有助于生成更优的执行计划。

问题修复

说明

  • 修复在使用Orca(兼容Redis协议)时,为Hash数据结构设置字段过期时间,如果目标字段列表中包含重复字段名,可能导致集群崩溃的问题。

  • 修复在开启并行查询后,优化器将EXISTS子查询转换为SEMI JOIN(Duplicate Weedout策略)时,在特定场景下可能返回重复结果集的问题。

  • 修复在列存索引(IMCI)Hybrid Plan中,Index Join算子在执行分区表相关查询时偶发Assertion failed: false报错的问题。

  • 修复只读节点在查询使用空间索引的表时,可能返回重复数据的问题。

  • 修复在使用Index MergeIndex Condition Pushdown (ICP)的执行计划中,自适应执行框架的统计信息存在偏差,导致计划选择不优的问题。

  • 修复在共享存储模式下,列存索引只读从节点(Read-Only Node)上的冷数据归档表可能出现列索引信息缺失的问题。

  • 修复列存索引(IMCI)中,DISTANCE函数在计算DOT(点积)相似度时返回值不正确的问题。

  • 修复在并行查询场景下,当常量表是一个包含多个内表的LEFT JOIN的外表时,执行可能导致集群崩溃的问题。

  • 修复为包含SET数据类型的表执行ADD INDEX操作时,需要对全表加锁而影响并发的问题。

  • 修复冷数据归档功能的一项限制,允许ALTER TABLE归档分区表的所有分区。同时,支持通过REORGANIZE PARTITION命令将已归档至OSS的分区恢复为InnoDB分区。

  • 修复在创建分区表时定义表级数据清理(TTL),由于未能正确更新主数据字典(DD)信息,导致TTL配置丢失的问题。

  • 修复在使用Orca(兼容Redis协议)时,SCAN命令在特定条件下可能不返回任何结果且持续处于搜索状态的问题。

  • 修复在列存索引(IMCI)Hybrid Plan中,Index Join在执行带有Post FilterAnti Semi Join时可能导致集群崩溃的问题。

  • 修复在只读节点上读取JSON类型数据时,在特定场景下可能返回invalid json错误的问题。

  • 修复在使用REDUNDANT行格式且包含通过秒级加字段添加的列的表中,将NULL值更新为空字符串时可能引发集群崩溃的问题。

  • 修复Sharding Outline功能因Token计算逻辑缺陷,导致无法正确支持表别名以及ORDER BY/LIMIT子句的问题。

  • 修复冷数据归档功能在处理包含BITENUMSET类型的ORC格式表时,可能出现异常报错的问题。

  • 修复因DEFAULT值引用的表与当前基表未能下推到同一执行计划分片,导致内部克隆操作崩溃的问题。

  • 修复对分区表执行RENAME DDL操作后,列存索引(IMCI)INFORMATION_SCHEMA系统表中缓存的表名未及时更新的问题。

  • 修复数据清理(TTL)功能在特定场景下可能导致集群崩溃的两个问题:一是在清理数据时,若因死锁导致事务回滚可能引发崩溃;二是在集群关闭期间,TTL线程未完全释放事务对象而导致崩溃。

  • 修复列存索引(IMCI)在部分版本之后,在线DDL(Online DDL)操作可能导致列存数据不准确的问题。

  • 修复因一项函数下推优化逻辑的问题,导致在禁止函数下推的场景下,弹性并行查询(Elastic Parallel Query)返回不正确结果的问题。

  • 修复PREPARE EXECUTE语句在处理字符串类型时,可能错误地使用character_set_client的字符集校验规则(Collation)的问题。

  • 修复在分区表上执行并行查询时,若执行计划涉及分区重分布(Partition-wise Repartition),其实际并行度可能超出max_parallel_degree参数限制的问题。

  • 修复当物化视图中的ORDER BY子句被优化合并到外层查询时,在特定场景下可能导致集群崩溃的问题。

  • 修复在秒级加字段提交后,一个基于旧表结构的列存索引(IMCI)信息更新任务被触发,从而导致失败的问题。

  • 修复冷数据归档归档异常导致临时表残留的问题,并增加了相应的错误日志。同时修复DLM在获取分区元数据锁(MDL)过程中,因锁升级冲突而导致集群崩溃的问题。

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

  • 修复通过库表恢复功能恢复包含秒级加字段且分区数大于等于10个的分区表后,访问该表可能出现未知错误的问题。

  • 修复当弹性并行查询(Elastic Parallel Query)Performance Schema同时开启时,在高并发负载下可能导致集群崩溃的问题。

  • 修复列存索引(IMCI)在对极大数据量的变长字符串执行GROUP BY操作时,可能因内存分配不足而返回out of memory错误的问题。

  • 修复ALTER TABLE命令在特定场景下可能执行失败,并导致数据库重启的问题。

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

  • 修复EXCHANGE PARTITION命令在写入DDL日志前发生崩溃,导致集群在恢复过程中跳过该DDL日志,从而造成数据定义不一致的问题。

  • 修复列存索引(IMCI)内部线程池在弹性缩容时产生的内存泄漏,避免了Serverless集群调整PCU时因内存泄漏影响稳定性。

  • 修复在只读节点上执行SHOW BINLOG EVENTS命令时,可能因文件未及时同步而报错File not found的问题。

  • 修复在对列存索引(IMCI)进行数据加载(Load)期间,若同时执行DROP INDEX操作,可能导致加载任务挂起(Hang)的问题。

8.0.2.0.4(2025.04.28

新增功能

说明

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

  • 新增支持DML语句并行查询功能。通过将复杂的DML操作分解为多个并行任务,提升整体性能。

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

  • 新增OnlineDDL方式来修改高压缩引擎(X-Engine)引擎的自增列值,不阻塞DML操作。

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

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

性能优化

说明

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

  • 列存索引(IMCI)Hybrid PlanIndex Join新增对Semi JoinAnti Semi Join模式的支持。

  • 优化混合优化器中IMCI统计信息后台抓取线程的稳定性问题。该问题会导致在涉及虚拟列(Virtual Column)的表操作时出现概率性崩溃问题。

  • 优化Orca(兼容Redis协议)支持HASH数据类型按照field维度设置TTL过期时间。

问题修复

说明

  • 修复不支持的自定义函数会被自适应分流到列存导致查询报错的问题。

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

  • 修复列存节点快照功能,避免长时间锁等待而导致的偶发监控卡顿问题。

  • 修复在查询中包含IS NULL条件时,并行查询可能返回错误结果的问题。

  • 修复在有大量字段的表上进行秒级修改字段操作时存在的内存访问越界问题。

  • 修复有序索引的自适应选择功能在特定类型查询场景下可能导致集群崩溃的问题。

  • 修复分区表中分区数据归档时,受并发线程影响导致的死锁问题。

  • 修复SQL语句持有表级MDL(元数据锁)但未持有分区级MDL锁的情况下,出现执行DROP PARTITION语句删除分区,可能导致SQL访问崩溃的问题。

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

  • 修复高压缩引擎(X-Engine)Index_merge路径在处理过程中未能正确获取Instant_ddl元数据,导致数据查询出现异常。

  • 修复String类型和向量类型转换问题,允许多种空白字符的使用。

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

  • 修复开启异步执行功能时,动态修改thread_pool_size参数可能导致数据库崩溃的问题。

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

8.0.2.0.3(2025.03.28

新增功能

说明

  • 索引命中次数的统计。在information_schema中可以查看每个表的每个索引的命中次数。

  • 新增支持通过HintView定义内的语句进行执行计划干预。

  • 新增Range-prefix Skip Scan机制,扩展Skip Scan适用范围,优化复杂查询的执行效率。

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

  • 新增FORCE STORAGE OSS选项,支持在删除冷数据操作时,同步删除OSS上的数据。

  • 新增参数oss_orc_read_buffer_size,支持动态配置ORCReader的读缓存大小。

  • 新增参数innodb_ttl_finished_job_expired_days,用于控制清理ttl_job_history表内过期的数据。

  • 数据清理(TTL)功能新增与TiDB等其他产品的兼容性,新增支持TTL = 'b' + INTERVAL 3 MONTH;语法。

  • 新增一个用于动态控制自适应行列分流的代价阈值参数,与代价分流阈值相区分。

性能优化

说明

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

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

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

  • 优化列存索引(IMCI)在处理复杂INEXISTS子查询时的性能,同时改进了优化器对子查询的处理逻辑,从而显著提升了查询效率与执行性能。

  • 优化8.0.2版本多主集群(Limitless)支持Partition Redo和异步Redo机制,有效提升了游戏场景下的系统吞吐量,从而更好地满足高并发需求。

  • 优化Orca在处理RedisSCAN命令附带COUNT选项时的逻辑,确保返回元素个数的准确性和一致性。

问题修复

说明

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

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

  • 修复SQL中的关联子查询时包含LIMIT 1时,查询不能在列存索引(IMCI)上执行的问题。

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

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

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

  • 修复SQL查询包含GROUP BY + WITH ROLLUP子句,且GROUP BY列引用derived table(派生表)中的列时,如果该 derived table 被优化器展开(flatten),可能会导致数据库进程崩溃的问题。

  • 修复动态关闭innodb_polar_log_rdma_transfer参数后无法动态修改innodb_log_buffer_size的问题。

  • 修复库表恢复功能和文件空间扩展loose_innodb_initialize_in_space_extend参数控制值不能填写0导致功能无法兼容问题。

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

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

  • 修复只读节点未同步gtid_purged变量导致查询结果为空值的问题。

  • 修复在使用TempTable引擎时,CTE(公共表达式)在多个引用场景下可能导致系统崩溃的问题。

  • 修复列存索引(IMCI)中的使用Hybrid Plan加速宽表查询Index Join机制中新增了对Semi JoinAnti Semi Join模式的支持,进一步扩展了查询优化能力,提升了复杂查询场景的执行效率。

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

8.0.2.0.2(2025.02.11

新增功能

说明

  • 新增列统计信息的自动采集功能,及时更新统计信息。

  • 新增异步执行能力,支持异步锁等待以及异步日志刷盘等待逻辑。

  • 新增对RANGE分区表分达式的支持,引入了函数cast_for_range(),该函数可将double类型数据转换为int类型,实现对double类型分区键字段支持。

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

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

  • 新增支持REORGANIZE PARTITION和 LIST DEFAULT HASH分区合并LIST分区至HASH分区,拆分VALUE到新的LIST分区。

  • 新增支持在全球数据库(GDN)场景下从集群添加只读列存节点。

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

  • 新增使用IMCI加速向量检索查询的特性。

  • 新增支持table value constructor语法,DML语句中可使用VALUES ROW语法。

  • 新增DISTANCE表达式,支持计算余弦相似度、点积相似度和欧式距离。

  • 新增非索引列统计信息的采集和使用,以及统一扩展统计信息的管理方式。

  • Orca新增全面的连接监控指标,包括总连接数、当前活跃连接数以及当前请求数。

  • 新增列存索引(IMCI)查询优先级调度功能,允许列存查询分配优先级,优化查询执行效率。

  • 新增explain analyze语句对Outline的调用支持,使其功能与explain语句一致,提升查询优化能力。

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

  • 新增对以下GIS相关函数的支持:ST_HAUSDORFFDISTANCEST_FRECHETDISTANCEST_LineInterpolatePointsST_LineInterpolatePointST_PointAtDistanceST_UnionST_DifferenceST_BufferST_CollectST_SymdifferenceST_Intersection,丰富了GIS功能支持。

  • 新增Orca(兼容Redis协议)支持DUMP、RESTORE、INFO命令,支持作为DTS目标端导入数据。

性能优化

说明

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

  • 优化多主集群(Limitless)支持Partition Redo和异步Redo机制,有效提升了游戏场景下的系统吞吐量,从而更好地满足高并发需求。

  • 优化在IMCI中增强了对SELECT DISTINCT ...语句的支持,允许存在non-full-groupby的情况,从而提高了与更多场景的兼容性,优化了查询的灵活性和适用性。

  • 优化算法选择逻辑,支持部分关联子查询使用高效HASH JOIN执行查询。

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

  • 优化高压缩引擎(X-Engine)存储引擎的DDL场景,系统将自动开启X-Engine的预提交功能。

  • 优化Orca(兼容Redis协议)功能,支持在RedisAUTHHELLO命令中通过username:password语法指定用户名和密码。

  • 优化Orca(兼容Redis协议)中对有序集合(Sorted Set)数据类型的锁粒度进行了调整,仅对二级索引使用标志位进行锁判断。

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

  • 优化Orca(兼容Redis协议)事务模型支持,包括WATCH、UNWATCH、MULTI、EXECDISCARD命令。

  • 优化Orca(兼容Redis协议)网络Pink组件的信号传递。

  • 优化分区代价模型,针对不包含分区键的索引上的等值查询和IN条件查询,在代价估算中引入了分区数因子,提升代价估算的准确性。

问题修复

说明

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

  • 修复在开启集群非阻塞DDL时,小概率出现的因终止DDL对应连接而导致语句无法正常退出的问题。

  • 修复Orca网络框架在连接超时或主动关闭时可能存在的套接字泄漏问题。

  • 修复DLM分区归档流程,在最后阶段将原本申请的表级MDL(元数据锁)调整为分区级MDL,减少了锁粒度,提升了系统并发性能和分区归档效率。

  • 修复物化表裁剪功能与WITH ROLLUP特性共存时的潜在崩溃问题。

  • 修复在大事务执行过程中列存节点集群重启时,崩溃恢复过程中可能出现的列索引数据冗余问题。

  • 修复多主集群下访问统计信息表一定概率会导致集群崩溃的问题。

  • 修复数据清理(TTL)功能的语法问题,将TTL调整为非保留关键字,以确保与社区的兼容性。

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

  • 修复XENGINE分区在执行optimize操作时需重建表的问题,优化了操作流程,显著提升了优化效率和系统运行效率。

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

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

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

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

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

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

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

  • 修复开启win magic开关后,由于base_ref_items空间不足导致的子查询改写溢出,从而引发进程崩溃的问题。

  • 修复元数据恢复阶段MDL锁获取失败导致列存索引数据无法恢复的问题。

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

  • 修复子查询嵌套中使用IN关键字合并时导致结果集不正确。

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

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

  • 修复参数并行查询相关参数pq_enable_xengine_mpp设置OFF后没有生效的问题。

  • 修复分区表Autoinc偶发性发生回退的问题,会导致INSERT出现重复键(Duplicate key)错误。

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

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

  • 修复INLISTJOIN结果集时,当INLISTVALUES里面有空值的情况下,会导致表达式求值错误。

  • 修复Orca(兼容Redis协议)功能中BITOPZRANGEBYLEXZRANGEBYSCOREZREVRANGEBYSCOREZREVRANGEBYLEX的返回结果与Redis官方不一致的问题。

  • 修复在计划中使用HASH JOIN时,可能导致并行查询结果错误的问题。

  • 修复在查询中存在Lateral Derived Tables (LDT) 时可能导致结果错误的问题。

  • 修复涉及SUBSTRING_INDEX表达式在处理GROUP_CONCAT输出空字符串且分隔符长度大于1时,可能导致进程崩溃的情况。

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

  • 修复DDL变更VECTOR类型的维度时未做数据校验的问题。

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

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

  • 修复multi-value indexMRR中被选中时可能导致集群崩溃的问题。

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

  • 修复在支持在线分区维护(MDL)后,在极端场景下对含有Autoinc的表进行DML操作时引发集群崩溃的问题。

  • 修复使用分区MDL时,小概率场景下主键索引上出现重复数据的问题。

  • 修复小版本升级时,从不支持向量检索的版本升级至支持向量检索的版本,导致数据字典出现不一致的问题。

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

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

  • 修复冷数据场景下,归档为CSVORC格式后,RO节点元数据缓存没有更新的问题。

  • 修复在对包含BLOB字段的表进行DDL操作时,由于内存问题导致集群崩溃的情况。

  • 修复Orca(兼容Redis协议)在执行部分管理命令时(如 ORCA_OPTIMIZEAUTHACL命令)无需锁定数据库的问题。

  • 修复在执行包含BLOB数据的查询时,使用并行查询可能导致结果错误。

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