本章节介绍云数据库 GaussDB(for MySQL)的内核版本更新说明。
2.0.54.240900
表1 2.0.54.240900内核版本说明
日期 |
特性描述 |
2024-10-18 |
- 新增功能和性能优化:
- 分区级MDL锁:在MySQL社区版中,分区表的数据访问操作(DML)和分区维护操作(DDL)会互相阻塞,这意味着分区维护只能在业务低峰期进行。本版本实现了分区级别的MDL锁,使得分区表的锁粒度从表级降低到了分区级,不同分区上的DML和特定DDL(如增加和删除分区)在MDL锁上不会相互阻塞,从而大大提升分区间操作的并发性。
- 表回收站:启用此功能开关后,符合条件的DROP TABLE命令不会直接删除指定表,而是将表暂时存放到回收站中,达到最大保存时间后,后台会自动删除。回收站功能支持修改被删除表在回收站中的保留时间,您也可以随时将表从回收站中恢复或彻底删除。
- 问题修复:
- 优化资源抢占场景下,各租户的CPU资源不会严格按照配置的比例分配问题。
- 优化Statement Outline功能,支持视图,支持explain analyze语句。
|
2.0.54.240600
表2 2.0.54.240600内核版本说明
日期 |
特性描述 |
2024-07-19 |
- 新增功能和性能优化:
- 热点行更新优化:热点行出现的场景包括秒杀抢购、演唱会门票预订、热门路线火车票预定等等,本版本支持热点行更新优化,您可以通过手动指定或者自动识别的方式开启热点行更新,该功能开启后可以大幅度提升热点行的更新性能。
- 非阻塞DDL:用户在执行DDL操作的时候,如果目标表存在未提交的长事务或大查询,DDL将持续等待获取MDL-X锁,将导致业务连接的堆积和阻塞。本版本支持非阻塞DDL功能,可以保证即使在无法获得MDL-X锁的情况下,依然允许新事务进入目标表,从而保证整个业务系统的稳定。
- 多租户管理:提供多租户管理功能,让数据库能够为其多个租户服务,提高数据库资源利用率。
- 只读节点支持Binlog拉取:支持只读节点拉取Binlog,您可以以GaussDB(for MySQL)只读节点为数据源,建立Binlog复制链路,实时同步Binlog内容,以便减轻GaussDB(for MySQL)主节点的负载。
- 字段压缩(列压缩):为了减少数据页面存储空间占用,节省成本,GaussDB(for MySQL)推出细粒度的字段压缩,提供ZLIB和ZSTD两种压缩算法,用户可以综合考虑压缩比和压缩解压性能影响,选择合适的压缩算法,对不频繁访问的大字段进行压缩。
- 支持INTERVAL RANGE分区表:现有的RANGE分区表插入数据时,如果插入的数据超出当前已存在分区的范围,将无法插入并且会返回错误。本版本支持INTERVAL RANGE分区表后,当新插入的数据超过现有分区的范围时,允许数据库根据INTERVAL子句提前指定的规则来添加新分区。
- 支持LIST DEFAULT HASH分区表特性:LIST DEFAULT HASH是在同一级别支持两种分区类型:LIST和HASH。前面是普通的LIST分区,不符合LIST分区规则的数据会放在DEFAULT分区里,DEFAULT分区如果有多个分区则根据HASH规则计算。LIST DEFAULT HASH分区类型常用在LIST VALUES分布不均匀以及无法全部枚举的场景。
- 问题修复:
- 优化表级恢复性能。
- 优化大规格实例高并发场景备机的执行性能。
|
2.0.51.240300
表3 2.0.51.240300内核版本说明
日期 |
特性描述 |
2024-03-30 |
- 新增功能和性能优化:
- 支持高性能全局一致性,在较低的性能损耗下,提供集群维度的强一致性读能力。
- 新增show binary logs no block语法,优化在show binary logs过程中对事务提交的阻塞情况。
- 提供undo truncate能力,优化大量写入场景导致undo空间膨胀的问题。
- 提高全量恢复的并行度,优化备份恢复效率。
- 问题修复:
- 修复一批window function查询结果不准确或异常错误的问题。
- 修复在打开plan cache后反复执行一类prepare statement,数据库节点崩溃的问题。
- 修复在先后执行的存储过程中,由于字符集不一致导致的报错问题。
- 修复一类开启PQ后进行磁盘hash join,查询结果不符合预期的问题。
- 修复一类查询含有group by临时表字段时,报错主键重复的问题。
|
2.0.48.231200
表4 2.0.48.231200内核版本说明
日期 |
特性描述 |
2024-01-30 |
- 新增功能和性能优化:
- 组合分区能力增强:在社区MySQL的RANGE-HASH、LIST-HASH两类组合分区能力基础上,增加了RANGE-RANGE、RANGE-LIST、LIST-RANGE、LIST-LIST、HASH-HASH、HASH-KEY、HASH-RANGE、HASH-LIST、KEY-HASH、KEY-KEY、KEY-RANGE、KEY-LIST的组合分区能力。
- 向前兼容MySQL 5.7 GROUP BY场景隐式/显式排序。
- 向前兼容MySQL 5.7 max_length_for_sort_data判据,优化特定场景文件排序性能。
- 优化因执行计划选错导致访问information_schema下视图较慢的问题。
- PQ支持EXIST子查询。
- 优化库表或实例按时间点恢复性能。
- 问题修复:
- OPENSSL版本升级。
- 修复time_zone参数默认值SYSTEM会导致部分场景SQL并行执行效率降低的问题。
- 修复一类条件部分下推到物化derived table时,SQL查询结果不准确的问题。
- 修复部分场景磁盘hash join开启PQ后性能劣化的问题。
- 修复控制台赋予用户数据库权限后,通过非控制台的方式删除此数据库,权限页面未更新的问题。
|
2.0.45.230900
表5 2.0.45.230900内核版本说明
日期 |
特性描述 |
2023-11-24 |
- 新增功能和性能优化:
- 优化datatime/timestamp/time字段行为向前兼容。
- 优化PQ支持并行磁盘hash join场景。
- 启用并行INSERT/REPLACE SELECT的功能优化查询速度。
- 增加连接建立/断开日志打印,提高定位连接相关问题效率。
- 优化慢日志中增加对慢SQL问题定位有用的信息,提升定位慢SQL定位效率。
- 支持动态开启Binlog。
- 优化NDP bloom过滤器。
- 支持使用CAST(... AS INT) 语法。
- 优化Nested Loop Join + Distinct 性能。
- 优化快速识别慢IO对应的slice id。
- 增加sal_init日志,后续出现存储接口超时,时延可定位性增强。
- 问题修复:
- 修复全量SQL中缺少trx_id和cpu_time字段的问题。
- 修复prepare语句中where比较时,字段是int类型、参数是字符串导致转换有误的问题。
- 修复备机上DDL与查询的并发访问时,极小概率导致crash的问题。
- 修复Binlog数量短期暴涨未及时清理的问题。
- 修复多表JOIN SQL语句打开PQ开关后,可能出现执行结果不一致的问题。
- 修复Backwad Index Scan与ICP无法兼容导致查询性能不及预期的问题。
- 修复weight_string函数不支持level子句的问题。
- 修复特殊场景下,相同的SQL语句选用不同的索引得出结果不一致的问题。
- 修复部分场景下,同时开启NDP和PQ特性recycle lsn长时间不推进的问题。
|
2.0.42.230600
表6 2.0.42.230600内核版本说明
日期 |
特性描述 |
2023-08-31 |
- 新增功能和性能优化:
- 优化全量与增量备份放到备库进行,减少主机内存/CPU占用。
- 优化UNDO损坏场景的快速定位:启动undo损坏时,明确打印出undo损坏和对应表名称。
- 优化备机查询性能劣后于主库问题。
- 优化in-list转临时表。
- NDP特性规模商用。
- 用Statement Outline方法稳定执行计划。
- PQ特性支持Round函数。
- 问题修复:
- 修复快速排序和优先级队列排序算法不稳定导致ORDER BY LIMIT与ORDER LIMIT结果集有重合的问题。
- 修复PQ语句极小概率情况返回错误结果的问题。
- 修复部分场景PREPARE语句执行报错的问题。
- 修复部分场景UNION查询上的PQ断言错误的问题。
- 修复实例主节点INSERT大数据量的时候只读升主,升主成功后用全文索引查询的结果不准确的问题。
- 修复备机使用general_log和slow_log表打印warning日志的问题。
- 修复部分场景设置锁等待时间参数innodb_lock_wait_timeout后,实际超时等待时间不一致的问题。
- 修复只读升主过程中,小概率出现Failed to find page in slice manager导致升主失败的问题。
- 修复salsql日志pwal扫描进度percentage值大于100%的问题。
- 修复执行sqlsmith工具, 查询语句在explain阶段偶现mysqld coredump。
- 修复SELECT DISTINCT + CAST函数转换datetime类型为float类型时,结果不正确的问题。
|
2.0.39.230300
表7 2.0.39.230300版本说明
日期 |
特性描述 |
2023-05-11 |
- 新特性及优化:
- 支持小规格实例。
- 备机DDL失效方案优化。
- SALSQL使用空间容量计算优化。
- 支持对单个SQL语句使用资源进行限制。
- 支持admin port和local socket使用per thread。
- pwalScanner内存优化。
- 支持修改default_collation_for_utf8mb4参数。
- 支持大事务检测能力。
- 支持Kill idle transactions。
- 优化增量恢复速度。
- 新增数据库描述和账号描述。
- 支持buffer pool resize加速。
- 问题修复:
- 修复Ptrc可能会导致Nestedloop join的结果不一致问题。
- 修复使用windows函数进行排序的子查询可能会导致crash问题。
- 修复使用rewrites view时,如果评估可能会把left joins转化为inner joins问题。
- 修复指定过滤条件的decimal类型的数据不返回结果问题。
- 修复内存非对齐问题。
- 修复全量日志中记录scan_row不准确问题。
|
2.0.28.18
表8 2.0.28.18版本说明
日期 |
特性描述 |
2023-05-17 |
修复对含有大的JSON列的排序报超过排序内存问题。 |
2.0.28.17
表9 2.0.28.17版本说明
日期 |
特性描述 |
2023-04-02 |
修复prepare statement中字符集混合使用问题。 |
2.0.28.16
表10 2.0.28.16版本说明
日期 |
特性描述 |
2023-03-14 |
- 新特性:
优化主备时延。
- 修复问题:
- 修复prepare statement中使用json相关函数处理错误问题。
- 修复指定过滤条件查询结果不返回的问题;
- 修复WINDOWS函数生成磁盘临时表后,出现空指针异常问题。
- 修复windows functions空指针使用导致的crash问题。
- 修复prepared statements执行失败的问题。
|
2.0.28.15
表11 2.0.28.15版本说明
日期 |
特性描述 |
2023-01-11 |
- 新特性
- 支持SQL限流。
- 读流控优化。
- 主备执行计划一致优化。
- slice异步预创建。
- 问题修复
- 修复系统变量INNODB_VALIDATE_TABLESPACE_PATHS关闭情况下undo space truncate的时候出现的crash问题。
- 修复查询information_schema.innodb_trx较慢问题。
- 修复查询结果不一致的问题:left joins没有转化为inner joins。
- 修复优化子查询的过程中导致的crash问题。
- 修复并发instantDDL和DML场景下未按实际获取instant字段值的问题。
- 修复当load有FTS索引的两个INNODB表时可能导致OOM的问题。
- 修复更新百万级别的表的数据字典可能导致OOM的问题。
|
2.0.28.12
表12 2.0.28.12版本说明
日期 |
特性描述 |
2022-12-07 |
修复更新有虚拟列的表之后,使用skip scan触发了扫描错误的问题。 |
2.0.28.10
表13 2.0.28.10版本说明
日期 |
特性描述 |
2022-11-16 |
修复主备倒换过程中,连接备机超时触发数据库崩溃问题。 |
2.0.28.9
表14 2.0.28.9版本说明
日期 |
特性描述 |
2022-09-23 |
- 修复在Condition_pushdown::replace_columns_in_cond中使用不正确的条件判断的问题。
- 修复递归调用存储函数之后导致数据库崩溃的问题。
- 修改多表删除和full-text搜索的时候导致数据库崩溃的问题;
- 修复运行多个窗口函数的SQL查询语句之后导致数据库崩溃的问题;
- 修复具有全局级别权限的用户,执行SHOW CREATE DATABASE失败的问题。
|
2.0.28.7
表15 2.0.28.7版本说明
日期 |
特性描述 |
2022-08-25 |
修复存储过程中的ptrc crash问题。 |
2.0.28.4
表16 2.0.28.4版本说明
日期 |
特性描述 |
2022-07-22 |
- 修复空用户导致数据库崩溃的问题。
- 修复更新用于聚合的临时表时,BLOB指针指向的数据过期的问题。
|
2.0.28.1
表17 2.0.28.1版本说明
日期 |
特性描述 |
2022-05-16 |
- 新特性
- GaussDB(for MySQL)增加orphaned definer check控制开关。
- GaussDB(for MySQL)支持Proxy IP透传。
- GaussDB(for MySQL) Proxy提供会话一致性功能。
- 问题修复
- 修复主机DDL未提交导致的备机dd(data dictionary)未更新问题。
- 修复故障切换的主机的auto increment回退的问题。
- 修复备机性能异常问题。
|
2.0.31.220700
表18 2.0.31.220700版本说明
日期 |
特性描述 |
2022-08-12 |
- 新特性及性能优化
- 支持SQL限流。
- 新增FasterDDL并行数限制。
- 支持Faster DDL的所有ROW格式。
- 扩展全量SQL字段。
- 优化流量控制。
- 支持ALTER TABLE快速超时。
- 支持Query plan cache。
- 备机统计信息优化。
- 问题修复
- 修复主机rename partition-table之后备机crash的问题。
- 修改sql tracer的默认buffer size。
- 修复备机truncate lsn落后很多情况下备机拉起失败的问题。
- 修复含有多个相同范围的SQL查询导致的执行计划错误的问题。
- 修复空账户导致的crash的问题。
- 修复drop database可能导致的crash的问题。
|