PolarDB MySQL版8.0.2版本发布日志

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

8.0.2.2.26.1

类别

说明

发布时间

问题修复

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

2024-11-21

8.0.2.2.26

类别

说明

发布时间

性能优化

  • 优化了统计信息采样机制,提升了大表的采样频率,并确保每列值域得到覆盖,提高了优化器的代价估计精度。

  • 优化列存节点Serverless流程。

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

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

2024-10-21

问题修复

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

  • 修复相关子查询使用window function嵌套过程中崩溃。

  • 修复高频率INSTANT DDL操作与后台compaction任务存在并发导致migrate过程崩溃。

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

  • 修复了在表数据全部清空后,Autoinc值可能回退至0的问题。

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

  • 修复了在启用列存索引(IMCI)的情况下,在子查询中使用JSON_ARRAY表达式时,可能导致结果不正确的问题。

  • 修复了在查询转换过程中,表个数超过61可能导致系统崩溃。

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

  • 修复分区表在HA(节点切换)后出现Autoinc回退问题。

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

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

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

  • 修复UPDATE语句使用Index_merge优化时,可能造成性能退化问题。

  • 修复了列存索引(IMCI)的Index JOIN使用常量作为JOIN条件时可能触发的问题。

  • 修复并行过程中table function条件下推,避免并行执行情况下执行失败的问题。

  • 修复ePQ多机并行开启后Outline中指定不存在的索引会导致报错的问题。

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

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

  • 修复了InnoDB临时表在更新场景中可能导致结果不正确的问题。

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

  • 修复查询中包含常量表时,并行查询结果可能出错的问题。

  • 修复了在使用通配符时,JSON_Length返回结果不正确的问题。

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

8.0.2.2.25.2

类别

说明

发布时间

问题修复

提升文件系统版本,优化可写快照还原集群的流程。

2024-08-13

8.0.2.2.25.1

类别

说明

发布时间

问题修复

修复文件系统版本与管控系统兼容性问题。

2024-08-10

8.0.2.2.25

类别

说明

发布时间

新增功能和性能优化

  • 新增支持JSON_VALUE()函数,简化了在JSON列上创建索引的操作。

  • 新增支持Copy DDL执行过程中,业务可持续更新。

  • 新增支持JOIN条件下推到对应的视图。

  • 列存索引(IMCI)新增基于Hybrid Plan的index join,支持利用InnoDB索引进行JOIN。

  • 新增通过联邦外表方式直接访问AI节点数据表。

  • 新增OSS OUTFILE功能支持并行导出至OSS引擎

  • 新增高优先级DDL能力,保证DDL执行成功。

  • 新增LOCK方法,可以锁定归档表。

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

  • 新增优化器功能为内连接或半连接消除。

    优化外连接消除功能并扩展更多场景。

  • Binlog大事务优化,避免阻塞其他事务提交。

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

  • 新增行内执行过程中支持动态切换列存。

  • 新增OSS查询加速功能支持分区表归档至OSS外表分区手动自动归档导表可以同步生成OSS_FILE_FILTER查询加速数据

  • 优化PolarDB MySQL版8.0.1及以上版本,支持在explain显示outline调用情况。

  • 优化PolarDB MySQL版ORDER BY LIMIT下推功能,支持ORDER BY LIMIT下推到JOIN Tables中。

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

  • 优化了单表查询的查询优化的耗时。

  • 优化列存索引(IMCI)中DML事务回放性能问题。

  • 优化列存索引(IMCI)bloom filter hash算法,以及使用字符串前缀构建bloom filter节省构建开销。

  • 优化simulated AIO的性能。

  • 优化3AZ集群在低并发时性能低下问题。

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

  • 优化了列存索引(IMCI)中查询时使用的元信息的内存。

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

  • 优化文件系统在DDL过程中频繁创建和删除表文件时的性能稳定性。

2024-08-08

问题修复

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

  • 修复RO节点在Buffer Pool满载时,用户线程长时间等待Free Page问题。

  • 修复统计信息采样机制大表频繁采样问题。

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

  • 修复部分列存索引(IMCI)隐式转换与MySQL中CASE不兼容的问题。

  • 修复分区表归档至OSS外表时,不支持全局二级索引(GSI)的问题。

  • 修复备节点的通讯(ACK)包连接报错无法识别的问题。

  • 修复了对大表执行analyze table操作期间发生内存不足 (OOM) 错误。

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

  • 修复inlist转JOIN过程中inlist类型不一致导致结果集不一致的问题。

  • 修复查询改写单行子查询使用index_merge访问导致读取不到数据问题。

  • 修复子查询转semi join crash的问题。

  • 修复查询改写带anti join标量子查询转derived table崩溃的问题。

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

  • 修复全局一致性高性能模式(SCC) Log RDMA功能,不兼容GDN备集群的问题。

  • 修复并行计算计划过程中double类型大值转uint导致溢出的问题。

  • 修复UCI分区表对于不包含分区键的二级索引,REF或MULTI RANGE访问代价偏小的问题。

  • 修复JSON中double value在parse阶段精度异常丢失问题。

  • 修复了主动触发checkpoint期间DB卡住缺陷问题。

  • 修复查询改写derived merge与标量子查询解嵌套规则交织过程中崩溃问题

  • 修复MYSQL外部XA事务在crash recovery过程的安全性问题。

  • 修复IMCI分区表上统计信息在分区裁剪场景下失效的问题。

  • 修复带有function index的InnoDB表无法冷数据归档的问题。

  • 修复了设置optimizer_switchparallel_query_switch数值时,分隔符号设置会导致报error而非warning的问题。

  • 修复DML语句默认禁止index merge intersection访问路径,提升性能防止死锁问题。

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

  • 修复CREATE TEMPORARY TABLE SELECT STATEMENT属性带列存的列报错问题。

  • 修复优化表过程中可能出现的断言失败问题。

  • 修复单机与多机并行时timedatetime比较导致查询结果缓存可能结果不准的问题。

  • 修复在会话级连接池下连接复用审计日志IP错误。

  • 修复UCI分区表基于主键的点查和范围查询代价偏低的问题。

8.0.2.2.24

类别

说明

发布时间

新增功能和性能优化

2024-06-21

问题修复

  • 修复空表使用并行DDL创建全局二级索引(GSI)时报错的问题。

  • 修复大表中带有Blob字段时统计信息估算错误的问题。

  • 修复审计和慢日志扫描行数时未记录派生表(Derived Table)扫描行数的问题。

  • 修复Shrink过程中出现异常,导致的空间泄漏的问题。

  • 修复混合分区中同时包含InnoDB分区和ORC分区时,在并行查询过程中出现错误的问题。

  • 修复子查询被错误折叠时,导致结果集不正确的问题。

  • 修复内核版本从8.0.1升级到8.0.2后,带有二级分区的分区表无法执行增加列(ADD COLUMN)操作的问题。

  • 修复谓词条件中存在DEFAULT表达式时,并行查询可能导致的集群崩溃问题。

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

  • 修复归档表在存在降序索引时进行归档操作失败的问题。

  • 修复对Blob列进行更新时,原记录的Blob空间无法回收的问题。

  • 修复使用BIGINT列作为JOIN条件时,若列中的值很大,可能导致基数估计结果不准确,从而导致无法使用列存索引(IMCI)的问题。

  • 修复更新列存索引(IMCI)分区表上的统计信息时可能只对部分分区进行采样,导致统计信息不准确的问题。

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

  • 修复CTE(Common Table Expression)作为LEFT JOIN的右表被消除后,可能导致并行查询崩溃的问题。

  • 修复开启线程池的情况下,SQL洞察中读写事务的事务ID可能为0的问题。

8.0.2.2.23.1

类别

说明

发布时间

新增功能和性能优化

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

2024-05-20

问题修复

  • 修复审计日志和慢日志扫描行数中未记录derived table扫描行数的问题。

  • 修复Limit Offset下推组合二级索引等值条件加主键in list条件时无法返回数据的问题。

  • 修复FLOAT类型与INT类型比较时,结果可能不正确的问题。

8.0.2.2.23

类别

说明

发布时间

新增功能和性能优化

  • 新增参数limit_orderby_pushdown_mode,用于控制是否将LIMIT和Order By下推到派生表(derived table)或UNION ALL的所有子分支。当LIMIT小于参数limit_pushdown_to_union_threshold的值时,会将LIMIT和Order By下推到UNION ALL的所有子分支。

  • 支持对OSS上CSV格式的数据文件使用查询加速功能。

  • 支持对已创建全局二级索引(GSI)的分区表执行INSTANT DROP PARTITION操作,且不会导致分区表上的全局二级索引(GSI)失效。

  • 优化并提升只读(RO)节点的读取性能。

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

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

  • 优化SQL Trace功能,使得在调用内置存储过程时可以正确记录SQL及其执行计划。

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

  • 支持使用非等值谓词推导技术,能够下推更多的谓词。

  • 精简行列自动分流参数的使用流程。同时,在不使用列存时支持通过SET use_imci_engine=FORCED来返回明确的原因。

  • 新增优化器查询变换功能,能够基于HAVING条件和VIEW外层条件实现LEFT JOIN到INNER JOIN的转换。

  • 新增优化器功能:消除查询语句中的冗余DISTINCT算子,提高查询执行速度。

  • 优化子查询执行流程,多个子查询尽可能折叠,以达到消除子查询的目的。

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

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

  • 支持对列存索引使用rman.import命令。

  • 优化X-Engine采样统计信息功能,估计近似压缩比。

  • 支持创建Tair的只读(RO)节点来提供Cache读能力。

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

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

  • 支持对X-Engine单表和分区表进行并行查询。

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

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

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

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

  • 优化PolarFS只读节点 IO 性能,提高只读节点查询响应速度。

2024-05-08

问题修复

  • 修复Buffer Pool自动取消前序缩容功能因用户大SQL占用Page不释放,导致后续的扩容请求无法执行的问题。

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

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

  • 修复了当查询中含有返回空结果集的子查询时,查询可能不能被分发到列存索引执行的问题。

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

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

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

  • 修复混合分区中同时包含InnoDB分区和ORC分区时,查询时节点崩溃的问题。

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

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

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

  • 修复连接条件下推功能中不支持使用HINT语法的问题。

  • 修复谓词下推子查询功能中不支持使用HINT语法的问题。

  • 修复HAVING条件下推不完全的问题。

  • 修复并行查询中在HAVING子句中引用投影列,执行非相关子查询时可能导致节点崩溃的问题。

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

  • 修复子查询合并功能不支持Optimizer HINT的问题。

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

  • 修复列存索引(IMCI)压缩超大strpack时内存越界的问题。

  • 修复条件下推至派生表时可能造成性能回退的问题。

  • 修复Group By之后BIT字段显示不正确的问题。

  • 修复X-Engine中的compaction后台任务严格的并发控制对前台操作的影响,导致慢查询性能下降的问题。

  • 修复在并行查询中,如果一个计划分片中存在多张表做partition-wise并行扫表,同时分片中还执行了parallel hash join操作时,可能导致结果不正确的问题。

  • 修复部分子查询上拉而导致警告column in group statement is ambiguous的问题。

8.0.2.2.22.1

类别

说明

发布时间

新增功能和性能优化

  • 优化了将冷数据从OSS导回至InnoDB引擎的报错信息内容。

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

2024-04-17

问题修复

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

  • 修复左连接INFORMATION_SCHEMA库中的表时结果错误的问题。

  • 修复了当已创建DLM策略的表的表结构发生变更后,DLM策略仍能生效的问题。

  • 修复在分区表上执行INSERT INTO ON DUPLICATE VALUE命令时报错Can't find record on <table>的问题。

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

  • 修复在B-tree较高或B-tree数据倾斜的大表上执行并行查询操作时,可能存在的并行分片数目过少,或并发worker数据不均衡的问题。

8.0.2.2.22

类别

说明

发布时间

新增功能和性能优化

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

  • 禁用Blob的small partial update特性,以避免读取Blob类型的字段时可能读错数据的问题。

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

2024-04-07

问题修复

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

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

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

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

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

  • 修复部分内置存储过程输入变量数量错误,不能正确报错的问题。

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

  • 修复创建包含DECIMAL类型的列的表时,误报“Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs”错误的问题。

  • 修复打开backquery机器闪回查询功能后,使用临时表时,执行undo清理的过程(undo cleanup)中出现小概率崩溃的问题。

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

  • 修复在使用JOIN消除优化功能后,剩余表的列信息没有更新,导致可能无法选择表的最优访问方式的问题。

  • 修复Semi join选择Materialization策略时,查询结果可能出现错误的问题。

  • 修复主键不包含分区键的分区表在binlog_row_image=MINIMAL情况下,Binlog Record不能唯一定位某一行record的问题。

  • 修复以下场景中,优化器在主键不包含分区键时,UCI索引可能不唯一的问题:

    • 上拉semi-join内表场景;

    • GROUP BYDISTINCT消除场景;

    • 为JOIN消除添加唯一键依赖场景;

    • 相关标量子查询通过window转derived table解关联的场景;

    • 列存索引处理GroupJoin查询场景。

8.0.2.2.21

类别

说明

发布时间

新增功能和性能优化

  • 优化低并发场景下线程池(Thread Pool)处理建连请求的速度。

  • 开启全局一致性(高性能模式)功能后,若当前执行的SQL语句不需要使用该功能,支持在当前的SQL语句中使用Hint语法来关闭全局一致性(高性能模式)功能。

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

  • 支持在多主集群(库表)中使用Concurrency Control和Statement Outline,当在多主集群(库表)的某个主节点上增加或删除Concurrency Control和Statement Outline后,集群上的其他主节点会自动同步增加或删除Concurrency Control和Statement Outline信息。

  • 支持在PolarDB MySQL版集群中增加Tair缓存节点,来读取PolarDB MySQL版数据库中的数据。

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

  • 提升了只读(RO)节点在二级索引回表主键场景下数据的读取性能。

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

2024-01-17

问题修复

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

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

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

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

  • 修复在某些特殊场景下,在包含Recursive CTE的查询语句中不能使用弹性并行查询(ePQ)功能的问题。

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

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

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

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

  • 修复修改分区表中分区键的字符集时,数据没有重新分区的问题。

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

  • 修复低并发场景下,对X-Engine引擎中的表执行写入操作时延迟偏高的问题。

  • 修复单行子查询被上拉后,GROUP BY找不到相应列的问题。

  • 修复MySQL社区开启subquery_to_derived功能后,结果集不正确的问题。

  • 修复使用polar_abbrev_sort_key_size参数控制排序操作时,写坏内存的问题。

  • 修复在主键不包含分区键的分区表上执行等值查询操作,选择唯一键(UK)进行index merge的场景下,只返回第一个分区中的数据的问题。

8.0.2.2.20

类别

说明

发布时间

新增功能和性能优化

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

  • 优化全局一致性(高性能模式)的开启流程。

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

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

2023-12-20

问题修复

  • 修复当derived table中存在ROLLUP计算时,对derived table进行并行扫描可能造成节点崩溃的问题。

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

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

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

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

  • 修复在强制关闭远程连接时,弹性并行查询(ePQ)执行异常导致内部连接对象泄露的问题。

  • 修复并行执行ROLLUP语句时,因GROUP BY中存在多个相同常量列导致查询结果错误的问题。

  • 修复分区表的所有分区在分区剪枝阶段都被裁剪掉的情况下,使用RANGE INDEX访问分区表的全局二级索引时,触发ASSERT CRASH(断言错误)的问题。

  • 修复将冷数据归档为ORC格式时,因表中存在Blob类型的字段导致归档失败的问题。

  • 修复MRR等场景下,并行查询对全局二级索引(GSI)的限制问题。

8.0.2.2.19.1

类别

说明

发布时间

问题修复

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

2023-11-13

8.0.2.2.19

类别

说明

发布时间

新增功能和性能优化

  • 优化只读节点(RO)节点切换为主节点的逻辑。

  • 优化线程池(Thread Pool)处理新建连接的逻辑。

  • 支持将子查询为UNION子句时的条件下推至物化表(derived table)。

  • 支持通过等值条件的传递关系尽可能让更多的可以下推的条件下推至物化表(derived table)。

  • 优化器支持将符合条件的谓词下推到子查询中。

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

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

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

  • 优化了内存,即减少了表对象缓存和表定义缓存对内存的消耗。

  • 支持对所有的RANGE类型的分区表使用DLM自动归档冷数据功能。

  • 支持在分区有裁剪的查询中,优化器可以选择分区表的全局二级索引。

2023-10-30

问题修复

  • 修复OSS SERVER的AK信息损坏时,可能出现集群无法启动的问题。

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

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

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

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

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

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

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

  • 修复了在分区剪枝时因没有定位到分区而可能出现的死循环问题。

8.0.2.2.18

类别

说明

发布时间

问题修复

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

2023-09-17

8.0.2.2.17

类别

说明

发布时间

新增功能和性能优化

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

2023-08-23

问题修复

  • 修复用户同时打开全局一致性(高性能模式)和弹性并行查询(ePQ)功能时,可能触发Table definition has changed错误的问题。

  • 修复Index condition pushdown场景下,SQL语句的扫描行数统计不准确的问题。

  • 修复在全文索引中使用短语搜索(Phrase search)模式时,导致节点崩溃的问题。

  • 修复当读写节点(RW)执行完undo truncate时,新连接的RO节点会崩溃的问题。

8.0.2.2.16.1

类别

说明

发布时间

问题修复

  • 修复后台线程CPU占用过高的问题。

  • 修复OSS Sever的AK信息损坏时,可能出现无法启动集群的问题。

2023-07-25

8.0.2.2.16

类别

说明

发布时间

新增功能和性能优化

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

  • 支持列存索引使用InnoDB引擎中的主索引进行加速查询。

  • 对单表做UPDATE或DELETE操作时,支持将IN子查询转换为Semi-Join子查询。

  • Join查询中,支持将标量子查询转换为物化表。

  • 支持对InnoDB引擎中的分区表使用Fast Query Cache功能。

  • 创建OSS外表时不会自动创建隐式自增主键。

  • 支持在UNIQUE CHECK IGNORE=1的分区表上创建全局二级索引。

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

2023-07-23

问题修复

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

  • 修复对混合分区表执行库表恢复操作时,恢复失败的问题。

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

  • 修复故障恢复过程中,进程低概率再次中断的问题。

  • 修复在UNIQUE CHECK IGNORE分区表中插入数据时,插入错误分区的问题。

8.0.2.2.15

类别

说明

发布时间

新增功能和性能优化

  • 读写(RW)节点和只读(RO)节点之间支持通过RDMA网络进行日志传输。

  • 支持将带有自增列的分区表和普通表归档至OSS。

  • 联邦查询引擎支持将Order语法下推至远端数据库,Order语法与Limit Offset结合使用以降低网络代价。

  • 支持在混合分区表(InnoDB+ORC)上创建列存索引。

  • 新增ALTER TABLE table_name CHANGE PARTITION partition_name ENGINE=CSV/ORC FORCE;语法。

  • 优化Thread Pool处理短链接的性能。

  • DLM功能支持将分区表中的InnoDB分区归档至OSS。

  • 支持删除和增加混合分区表中InnoDB分区。

2023-06-28

问题修复

  • 修复使用列存索引进行查询时,使用的临时文件写满磁盘后不能及时中断查询并清理文件的问题。

  • 修复重复执行存储过程时,参数不生效的问题。

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

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

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

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

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

8.0.2.2.14

类别

说明

发布时间

新增功能和性能优化

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

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

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

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

  • 新增抢占式DDL功能。

  • 新增分区归档命令ALTER TABLE table_name CHANGE PARITION part_name ENGINE = 'csv';

  • 新增行级压缩功能。

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

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

  • 支持读取OSS上的ORC格式的数据,以及将ORC格式的数据写入OSS。

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

2023-05-24

问题修复

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

  • 修复查询混合分区表时使用order index优化,节点会崩溃的问题。

  • 修复截断混合分区(truncate hybrid partition)时,节点会崩溃的问题。

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

  • 修复OSS无法并行执行的问题。

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

  • 修复engine拼写错误的问题。

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

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

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

8.0.2.2.13

类别

说明

发布时间

新增功能和性能优化

  • 新增条件下推(WHERE条件下推派生表)功能。

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

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

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

  • 列存索引支持REGEXPR函数。

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

  • 支持使用并行DDL来并行创建全局二级索引。

  • 支持在已创建全局二级索引的分区表上使用秒级加字段功能。

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

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

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

  • 支持将已创建全局二级索引的表转换为INTERVAL RANGE分区表,同时支持在INTERVAL RANGE分区表上创建全局二级索引。

  • 新增ALTER TABLE table_name CHANGE PARTITION partition_name ENGINE = 'csv';命令,用于将分区表上指定分区的全部数据归档到OSS。

  • 当没有添加Statement Outline时,执行SQL语句不再计算SQL语句的Digest值。

  • 非阻塞DDL支持使用OPTIMIZE TABLETRUNCATE TABLE语句。

2023-04-21

问题修复

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

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

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

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

8.0.2.2.12

类别

说明

发布时间

新增功能和性能优化

  • 新增非阻塞DDL功能。

  • 新增SQL Trace功能。

  • 新增SQL Detail功能。

  • 新增Auto Plan Cache功能。

  • 新增列存索引功能。

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

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

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

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

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

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

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

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

2023-03-20

问题修复

  • 修复在热备节点或只读节点上增删CCL规则或Statement Outline时,不进行报错的问题。

  • 修复在主节点执行SHOW SLAVE HOSTS语句时,导致集群崩溃的问题。

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的内表)进行消除。

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

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

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改为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