TXSQL 内核更新动态

最近更新时间:2024-11-12 16:00:12

我的收藏
本文为您介绍 TXSQL 的内核版本更新说明。
说明:
如何升级 MySQL 实例的内核小版本,请参见 升级内核小版本
升级小版本时,可能会存在部分小版本维护中,无法选取的情况,请以控制台可选小版本为准。
MySQL 8.0 内核版本更新说明
MySQL 5.7 内核版本更新说明
MySQL 5.6 内核版本更新说明
小版本
说明
20230702
注意:
从 MySQL 8.0.29 开始,Information Schema 中表的查询结果会使用 utf8mb3 替代 utf8。Connector/Net 8.0.28 之前的版本不支持 utf8mb3,遇到 utf8mb3 时会报错:Character Set 'utf8mb3' is not supported by .Net Framework。如果应用程序使用了 Connector/Net,请在升级云数据库 MySQL 版本前,先升级 Connector/Net 到 8.0.28 及之后版本。详情请参见:
性能优化
降低并行查询 exchange 算子频繁 notifying 造成的开销。
bug 修复
修复 INSTANT DDL 修改列位置导致实例 crash 的异常问题。
20230701
注意:
从 MySQL 8.0.29 开始,Information Schema 中表的查询结果会使用 utf8mb3 替代 utf8。Connector/Net 8.0.28 之前的版本不支持 utf8mb3,遇到 utf8mb3 时会报错:Character Set 'utf8mb3' is not supported by .Net Framework。如果应用程序使用了 Connector/Net,请在升级云数据库 MySQL 版本前,先升级 Connector/Net 到 8.0.28 及之后版本。详情请参见:
bug 修复
支持用社区版本拉起 TXSQL 物理备份。
AWR 功能中所有关键字替换为“TXSQL_AWR”。
修复后台线程和 RENAME 在 dict cache 上竞争时,可能导致底层开表失败的问题。
20230630
注意:
从 MySQL 8.0.29 开始,Information Schema 中表的查询结果会使用 utf8mb3 替代 utf8。Connector/Net 8.0.28 之前的版本不支持 utf8mb3,遇到 utf8mb3 时会报错:Character Set 'utf8mb3' is not supported by .Net Framework。如果应用程序使用了 Connector/Net,请在升级云数据库 MySQL 版本前,先升级 Connector/Net 到 8.0.28 及之后版本。详情请参见:
新特性
支持 Nonblocking DDL 功能。
支持 xa commit 记录 relay log 中最大的 gts 实例 TP/AP 负载统计。
支持选择 Innodb 临时表被并行查询 worker 线程共享。
支持分区表作为并行查询并行表。
支持闪回版本查询的功能。
支持闪回查询持久化。
支持虚拟索引。
支持 range/list 二级分区 功能。
支持自动 relay log recovery 的功能。
支持 DDL 的默认算法,可选 INPLACE/INSTANT。
支持 Fast Query Cache。
支持分区表从 MyISAM 到 InnoDB 的转换。
支持关联子查询缓存功能。
性能优化
优化 BINLOG LOCK_done 锁冲突。
优化线程池性能。
优化 outer join 中禁用 eq_ref cache 导致性能回退的问题。
并行查询功增强:
子查询 \\derived table 单独并行执行:对子查询 \\derived table 的执行计划单独并行优化与执行,独立于主查询执行。
Nested loop join 内表并行:当 NLJ 外表为小表时,可以选择内表作为并行表 ROLL UP 并行执行。
Hash join(in memory)并行执行:在工作线程分别构建完整的 hash 表,在 probe 端并行扫描。
并行查询支持全局聚合优化。
并行查询支持 having 条件下推并行。
大事务提交 binlog 优化。
优化 binlog purge 导致的性能抖动。
支持热点更新合并优化。
bug 修复
修复 Parallel Copy DDL 事务回滚时断言失败的问题。
修复 EXPLAIN FORMAT=TREE 不打印 HashJoin 条件中的子查询的问题。
修复 redundant format 格式 instant add 后导致实例运行异常的问题。
修复从老版本升级后全局事务 id 回退的问题。
修复 index merge intersect 导致查询结果错误的问题。
修复跨机统计信息收集可能阻塞 shut down 过程的问题。
修复历史直方图版本主从环境下可能 crash 的问题。
修复 check inde 持有大量页面锁的问题。
修复跨机直方图在并发 DDL 操作下死锁的问题。
修复跨机直方图任务包含列数过多时导致锁未释放的问题。
修复若干 instant ddl 的问题。
修复 update returning 导致客户端断开连接的问题。
修复漏洞扫描发现的空指针解引用漏洞。
修复并行执行下,存储层表结构变化时可能导致实例运行异常的问题。
修复 prepare 语句使用 WHERE column IN (list) 导致性能下降的问题。
修复导入 mysqldump 逻辑备份统计信息可能为空的问题。
修复当表的变更包含自增列时使用 Parallel Copy DDL 存在的主键冲突的问题。
修复并行查询 hash join 的 build 分支存在 hash join 时无法并行的问题。
修复并行查询 join 的非并行分支存在 UNION 时无法并行的问题。
修复并行查询两处内存泄漏的问题。
修复并行查询空 range 的分区退出问题。
修复 Outline IN-list 报错的问题。
修复 partition_id 溢出导致 truncate partition crash 的问题。
修复并行查询中相关子查询引用 worker 表字段导致查询结果错误的问题。
修复并行 DDL 中获取错误的 offset 的问题。
修复并行 DDL 为有重复数据的列上添加 unique key 时导致实例运行异常的问题。
修复并行 hash join debug 断言失败的问题。
修复并行代价计算 NDV 为0的问题。
修复 JSON 导入精度的问题。
FORCE INDEX ORDER BY 语句跳过 index dive Bug。
修复官方子查询计划重复显示的问题。
修复落盘临时表计数不增加的问题。
修复 proxy change user 导致死锁的问题。
修复权限校验优化在 trigger 中调用 stored procedure 导致权限检查被跳过的问题。
20221221
注意:
从 MySQL 8.0.29 开始,Information Schema 中表的查询结果会使用 utf8mb3 替代 utf8。Connector/Net 8.0.28 之前的版本不支持 utf8mb3,遇到 utf8mb3 时会报错:Character Set 'utf8mb3' is not supported by .Net Framework。如果应用程序使用了 Connector/Net,请在升级云数据库 MySQL 版本前,先升级 Connector/Net 到 8.0.28 及之后版本。详情请参见:
bug 修复
修复从机开启 log_slave_update 后,在从机落盘到 binlog 的 event 的 thread_id 发生变化。
20221220
注意:
从 MySQL 8.0.29 开始,Information Schema 中表的查询结果会使用 utf8mb3 替代 utf8。Connector/Net 8.0.28 之前的版本不支持 utf8mb3,遇到 utf8mb3 时会报错:Character Set 'utf8mb3' is not supported by .Net Framework。如果应用程序使用了 Connector/Net,请在升级云数据库 MySQL 版本前,先升级 Connector/Net 到 8.0.28 及之后版本。详情请参见:
bug 修复
修复 instant ddl bug。
20221215
注意:
从 MySQL 8.0.29 开始,Information Schema 中表的查询结果会使用 utf8mb3 替代 utf8。Connector/Net 8.0.28 之前的版本不支持 utf8mb3,遇到 utf8mb3 时会报错:Character Set 'utf8mb3' is not supported by .Net Framework。如果应用程序使用了 Connector/Net,请在升级云数据库 MySQL 版本前,先升级 Connector/Net 到 8.0.28 及之后版本。详情请参见:
新特性
合并官方 8.0.238.0.30 的变更。
支持用户连接状态监控功能,通过 show detail processlist 查看连接监控。
支持 update wait N 语法。
支持 nvl(),to_number(),to_char() 函数功能语法。
支持 cdb_kill_user_extra 正则表达式。
性能优化
优化 binlog rotate 操作实现方式,提升 binlog 写入速度。
优化云数据库 MySQL 启动速度。
优化 binlog checksum 调用,减少不必要的 CPU 性能开销。
优化 ha_innopart::external_lock 锁热点,减少持锁时间。
优化 xa::Transaction_cache,减少锁冲突。
减少 ha_innopart::clear_blob_heaps 耗时。
优化 purge threads 锁热点,减少 tasks_mutex 以及 thread 间冲突。
优化 Buffer Pool 初始化,支持并行初始化,加速初始化速度。
优化高并发下 read_only 和 select 性能。
优化 prepared statement 和 stored procedure 的权限校验。
优化 change buffer 的访问。
避免非必要情况调用 fil_space_get,减少极端场景下的热点问题。
优化关闭 binlog_order_commits 时事务提交时 gtid 的锁冲突。
使用 Lock Free Hash 优化 trx_sys mutex 冲突。
优化事务系统取快照开销。
优化 Writeset,提升性能。
使用直方图替代索引下探。
支持 Parallel DDL。
bug 修复
修复 innodb_row_lock_current_waits 等统计值异常的问题。
修复 Group concat with group by 内存占用过高的问题。
修复长记录下,统计信息被严重低估的问题。
修复解析存储过程语法报错的问题。
修复 FAST DDL 中优化 flush list 释放页面并发的问题。
20220831
新特性
支持动态设置 MySQL 版本。
透明列加密。建表对 varchar 字段指定 encryption 属性,存储侧会对该列进行加密。该能力预计在2023年进行产品化。
解决使用第三方数据订阅工具时,因订阅到内部数据一致性对比 SQL 导致数据订阅工具异常的问题。
说明:
数据库实例在迁移、升级或故障重建后系统会进行数据一致性对比以确保数据的一致性,数据库对比 SQL 为statement 模式,在部分第三方订阅工具中对statement模式 SQL 的处理容易出现异常。升级至该版本内核后,第三方订阅工具不会订阅到内部数据一致性对比的 SQL。
支持 DDL 操作加 NO_WAIT | WAIT [n] 功能。使 DDL 能够在无法获得 MDL 锁且必须等待之前立即回滚;或者,如果在等待 MDL 锁上花费了指定的时间,则回滚 DDL。
支持 Fast Query Cache 功能。针对场景是读多写少。如果写多读少,数据的更新非常频繁,或者查询的结果集非常大,不建议开启。
支持 mts 死锁检测增强功能。
支持 并行查询。开启并行查询功能,就可以自动识别大查询,利用并行查询能力,调动多核计算资源,大幅缩短大查询响应时间。
性能优化
优化事务系统取快照开销。采用了 Copy Free Snapshot 方式,事务延迟从全局活跃事务 hash 中删除,取快照优化为确定取快照事件的逻辑时间戳。sysbench 测试 read-write 场景极限性能提升11%。
优化 prepared statement 过程中的权限校验。全局用一个变量表示权限版本号,prepared statement 在 prepare 完成后记录版本号,执行的时候对比权限版本号是否发生变化,如果没有权限变更,跳过权限检查,否则重新检查权限并记录版本号。
优化线程池中时间获取精度。
优化记录 offset 获取。为每个 index 缓存一份记录的 offset,当满足条件时,直接使用缓存的 offset 从而省去调用 rec_get_offsets() 函数的计算开销。
优化 Parallel DDL
1.1.1 在索引字段较小时,减少采样内存大小,从而减少采样的频率。
1.1.2 通过 K 路归并来进行排序,能够有效减少归并排序的轮数,从而减少 IO 的次数。
1.1.3 读取记录时将定长 offset 缓存,从而避免每次为每条记录生成一次 offsets。
优化 undo log 信息记录逻辑,提升 insert 性能。
优化半同步开启时的性能,提升启用半同步时的性能。
审计性能优化,降低系统开销。
bug 修复
修复 Thread_memory 有时显示值异常的问题。
修复审计批量语句场景中 timestamp 不准确的问题。
修复秒级修改列相关问题。
修复 CREATE TABLE t1 AS SELECT ST_POINTFROMGEOHASH("0123", 4326); 语句导致主从中断的问题。
修复表级别并行时 slave 重试异常的问题。
修复执行 show slave hosts 出现 Malformed packet 报错的问题。
修复回收站相关问题。
修复在 ARM 机型下,jemalloc 分配机制易触发 OOM 的问题。
修复 truncate pfs accout table 导致统计失效的问题。
修复回收站有外键约束时先恢复子表再恢复父表出现异常的情况。
修复日志中有关 sql_mode 日志的问题。
修复低概率执行 CREATE DEFINER 存储过程异常问题。
修复官方 Copy Free Snapshot 相关问题。
修复线程池性能抖动问题。
修复 hash join+union 结果可能为空的问题。
修复内存相关问题。
20220401
bug 修复
修复 Parallel DDL 中 stage 变量错误,导致创建 FTS 索引场景出现 stage 空指针 crash 的问题。
修复新增全文索引过程中有可能引发 crash 的问题。
20220331
bug 修复
修复线程池中野指针被解引用导致 crash 的问题。
20220330
新特性复
支持扩展资源组,可对 IO、内存使用占比以及 SQL 超时策略以用户为单位进行控制。
支持闪回查询能力,可以查询 UNDO 时间范围内的任意时间点数据。
支持 delete/insert/replace/update 的 returning 语法,可以返回该 statement 所操作的数据行。
支持 row 模式 gtid 复制功能扩展。
支持事务锁优化功能。
回收站增强,支持 truncate table 和自动清理回收站中的表。
支持 parallel ddl 能力,通过三阶段并行的方式加速需要创建索引的 DDL 操作。
支持快速修改索引列功能。
支持自动统计信息收集和跨机统计信息收集。
性能优化
优化关闭 binlog_order_commits 时事务提交时 gtid 的锁冲突。
通过将 InnoDB 启动阶段将单线程创建 rsegs 更改为多线程创建,优化 MySQL 启动时间。
bug 修复
修复死锁或被锁等待后连接断开事务不结束的问题。
修复 innodb_row_lock_current_waits 等统计值异常的问题。
修复审计插件没有 use database下 sql type 错误的问题。
修复大表异步删除功能中,小于 innodb_async_table_size 的表也会被 rename 的问题。
修复审计插件转义字符错误的出问题。
修复 trx_sys close 时带 xa 场景可能出现 crash 的问题。
修复 merge derived table 的时候出现 crash的问题。
修复 writeset 开启后修改 binlog_format 的问题。
修复 hash scan 对同一行进行 A->B->A->C 更新时1032问题。
修复 Prepared Statement 模式下排序索引可能失效的问题。
修复消费物化结果的算子可能被并入物化算子返值路径,导致的执行计划理解和显示问题。
大表异步删除修复极端情况下的异常行为。
修复设置 sql filter 时错误信息提示异常的问题。
修复解析存储过程语法报错问题。
修复不能应用历史直方图问题。
修复 SHOW SLAVE HOSTS(show replicas) 显示 Role 列显示带来的兼容性问题。
修复 Item_in_subselect::single_value_transformer 在列数目出错的情况下,会 crash 的问题。
修复子表存在 virtual column 和外键列,级联更新的过程中存在内存泄漏导致实例 crash 问题。
20211202
新特性
支持直方图历史版本能力。
支持 SQL2003 TABLESAMPLE (单表)采样控制语法,用于获取物理表的随机样本。
新增非保留关键字:TABLESAMPLE BERNOULLI。
新增 HISTOGRAM() 函数,对于给定输入字段构建直方图。
支持 compressed 直方图。
支持 SQL 限流功能。
支持 MySQL 集群角色设置功能,默认为角色为 CDB_ROLE_UNKNOWN。
show replicas 命令展示结果新增Role列,用于展示角色。
支持 proxy。
性能优化
优化了由 insert on duplicate key update 引发热点的更新问题。
通过聚合 event 多个相同的 binlog event 来提升 hash scan 的应用速度。
在 plan cache 打开的情况下,线程池模式下,prepare 语句在点查的内存大量减小。
bug 修复
修复热点更新优化开启后性能不稳定的问题。
修复select count(*) 并行扫描在极端情况下会全表扫描的问题。
修复多种情况下统计信息读零而导致的执行计划改变导致的性能问题。
修复 query 长时间处于 query end 状态的 bug。
修复长记录下,统计信息被严重低估的 bug。
修复使用 Temptable 引擎时,选择列中的聚合函数超过255个时报错的 bug。
修复 json_table 函数列名称大小写敏感的问题。
修复窗口函数因为表达式在 return true 时提前返回导致正确性问题的 bug。
修复 derived condition pushdown 在含有 user variables 的时候依然下压导致的正确性问题。
修复 SQL filter 在 Rule 规则没加 namespace 下容易导致 crash 的问题。
修复高并发高冲突情况下开启线程池的 QPS 抖动。
修复主从 bp 同步在极端情况下(宿主机文件系统损坏的情况)泄漏文件句柄的问题。
修复 index mapping 问题。
修复统计信息缓存同步问题。
修复移植执行 update 语句或存储过程未清理信息导致的 crash 问题。
20210830
新特性
支持预加载行数限制功能。
支持计划缓存点查优化功能。
支持扩展 ANALYZE 语法(UPDATE HISTOGRAM c USING DATA 'json'),支持直接写入直方图功能。
性能优化
使用直方图替代索引下探,降低评估误差以及 I/O 开销,该能力默认未打开。
bug 修复
修复 online-DDL 期间统计信息可能为零的情况。
修复从机 generated column 不更新的情况。
修复 binlog 压缩时实例 hang 住的问题。
修复新产生的 binlog 文件的 previous_gtids event 中的 gtid 缺失问题。
修复修改系统变量时可能死锁的问题。
修复 show processlist 中从机 sql 线程的 info 显示不正确的问题。
移植官方8.0.23中 hash join 相关的 bugfix。
移植官方 writeset 相关 bugfix。
移植官方8.0.24中查询优化器相关的 bugfix。
修复 FAST DDL 中优化 flush list 释放页面并发 bug。
优化海量个数表的实例升级数据字典时占用大量内存。
修复 instant add column 后在创建新主键场景下的 crash 问题。
修复全文索引查询中内存增长导致 OOM 问题。
修复 show processlist 返回结果集中 TIME 字段出现-1的问题。
修复直方图兼容性可能导致表无法打开的问题。
修复构建 Singleton 直方图的浮点累加误差。
修复 row 格式日志时表名为较长的中文字符导致复制中断问题。
20210330
新特性
支持主从 bp 同步功能:当发生 HA 并进行主备切换后,备库通常需要一段比较长的时间来 warmup,把热点数据加载到buffer pool。为加速备机的预热,TXSQL 支持了主从 bp 同步功能。
支持 Sort Merge Join 功能。
支持 FAST DDL 功能。
支持用户侧查询 character_set_client_handshake 参数显示当前值功能。
性能优化
优化扫描 flush list 刷脏:通过优化刷脏机制,解决了创建索引过程中的性能抖动问题,提升了系统稳定性。
官方 bug 修复
修复修改 offline_mode、cdb_working_mode 参数的死锁问题。
修复 trx_sys的max_trx_id 持久化并发问题。
20201230
新特性
合并官方 8.0.198.0.208.0.218.0.22 变更。
支持动态设置 thread_handling 线程模式或连接池模式。
性能优化
优化 BINLOG LOCK_done 锁冲突,提升写入性能。
使用 Lock Free Hash 优化 trx_sys mutex 冲突,提升性能。
redo log 刷盘优化。
buffer pool 初始化时间优化。
大表 drop table 清理 AHI 优化。
审计性能优化。
官方 bug 修复
修复清理 innodb 临时表时造成的性能抖动问题。
修复核数较多的实例 read only 性能下降的问题。
修复 hash scan 导致1032问题。
修复热点更新功能的并发安全问题。
20200630
新特性
支持异步删除大表:异步、缓慢地清理文件,进而避免因删除大表导致业务性能出现抖动情况,该功能需 提交工单 申请开通。
支持自动 kill 空闲任务,减少资源冲突,该功能需 提交工单 申请开通。
支持透明数据加密功能。
官方 bug 修复
修复由于 relay_log_pos & master_log_pos 位点不一致导致切换失败的问题。
修复异步落盘所引起的数据文件出错的问题。
修复 fsync 返回 EIO,反复尝试陷入死循环的问题。
修复全文索引中,词组查找(phrase search)在多字节字符集下存在的崩溃
小版本
说明
20240331
新特性
合并官方 5.7.365.7.375.7.385.7.395.7.405.7.415.7.425.7.435.7.44 变更。
增加 update returning 功能。
增加 DDL 进度展示。执行 DDL 操作期间,执行 show detail processlist 命令来查看。
增加默认表加密功能。
性能优化
优化审计 SQL_TYPE 准确性。
索引下探剪枝优化。
bug 修复
修复 insert returning 语句导致 slave crash 的问题。
修复 slave 回放线程 getting stuck due to MASTER_DELAY 的问题。
修复通过函数设置自定义变量导致 session track 返回出错的问题。
修复 hash scan 占用大量内存的问题。
修复开启回收站后 drop/truncate 不存在的 table 与关闭时不一致的问题。
修复在关闭 binlog_checksum 情况下的拉取 binlog 出现乱码的问题。
Parallel Copy DDL bug 修复。
20230601
新特性
支持闪回查询持久化。
支持 drop table force,实现 drop innodb 元数据。
支持 Parallel Copy DDL。
支持 limit in subquery。
支持分区表从 MyISAM 到 InnoDB 的转换。
bug 修复
修复主从 BP 同步功能索引异常的问题。
修复大事务时 kill 连接导致异常的问题。
修复在 session track 中获取用户自定义变量字符串错误的问题。
修复并行 DDL 开启 innodb_disable_sort_file_cache 创建索引失败的问题。
修复 instant modify column 的一些错误。
20230115
新特性
支持 Nonblocking DDL 功能。
支持 validate password 插件。
支持存储历史死锁信息。
性能优化
大表异步删除:临时表也使用 innodb_async_table_size 过滤表,只有超过 innodb_async_table_size 的表才走异步删除,提升了处理效率。
bug 修复
修复使用 grant identified by 创建用户失败造成主备中断的问题。
修复 GROUP_CONCAT 在打开 DERIVED_MERGE 开关的前提下没有正确设置 USED_TABLES 的问题。
修复 gtid_subset 函数没有正确处理 null_value 的问题。
修复 dummy index cache 未初始化 system columns 的问题。
修复分区表 instant add column 超过最大列数量的问题。
修复 canal 拉取 binlog 时,有概率导致 OOM 问题。
修复 proxy 在使用不同的用户重用连接时出现错误的问题。
修复 proxy 对 row count 和 found row 以及 db 设置的返回错误。
修复报错信息 binlog 发送接收中,错误信息不全面的问题。
修复分页计算下推计算异常的问题。
修复 Parallel DDL 创建子树后 m_page 可能无效的问题。
修复 instant modify 在某些字符集下 crash 的问题。
20220716
新特性
支持 InnoDB 自增列持久化功能。
支持内存精确统计功能。
支持 Query 级别内存监控功能。
支持回收站功能。
支持并行 DDL 功能。
支持内部 xa 事物异步回滚功能。
性能优化
异步大表删除优化原有大表的定义为50G,现在可通过参数 innodb_async_table_size 进行控制,使其更加灵活。
bug 修复
修复 alter table 创建索引报错 ERROR 1878 (HY000): Temporary file write failure 的问题。
修复 PFS 内存监控看不到 buf/buf/pool 的问题。
修复 returning 语句在某些场景可能存在权限检查导致异常的问题。
修复 parser 没有正确处理语句中的分号造成报错的问题。
修复审计语句内单引号未转义的问题。
修复 ARM 平台下突发内存升高的问题。
修复 writeset 开启后修改 binlog_format 导致主从不一致的问题。
修复大量线程同时退出导致 CPU 高的问题。
修复 drop table partition force 相关 bug。
修复 binlog dump 卡住导致实例重启缓慢的问题。
修复 create table like temporary table 在 binlog 中不继承字符集导致主从同步失败的问题。
修复 show detail processlist 显示非法字符信息的问题。
修复线程池某些情况在关闭时未释放 thread_group 锁的问题。
修复 table 并行级别更新父表导致实例运行异常的问题。
修复虚拟列在 slave 上计算错误的问题。
修复 gtid_subset 在执行一行记录后没有将 null_value 设置为 false 的问题。
20211230
新特性
合并官方 5.7.195.7.36 的变更。
主从 buffer pool 同步,加速 HA 以后的性能恢复速度,对比原生模式性能恢复速度减少90秒左右。
新增 backup lock 特性,提供轻量级的元数据锁,提高备份时的服务可用性。
性能优化
将 utf8/utf8mb4 my_charpos 相关函数内联,优化 UTF_8 相关函数在 read_write 场景下的性能。
jemalloc 版本升级至5.2.1。
binlog rotate 时文件编号获取优化。
半同步 slave io 优化。
hash scan 聚合优化。
优化大事务 crash recover 启动时间。
20211102
新特性
解决使用第三方数据订阅工具时,因订阅到内部数据一致性对比 SQL 导致数据订阅工具异常的问题。
说明:
数据库实例在迁移、升级或故障重建后系统会进行数据一致性对比以确保数据的一致性,数据库对比 SQL 为statement 模式,在部分第三方订阅工具中对statement模式 SQL 的处理容易出现异常。升级至该版本内核后,第三方订阅工具不会订阅到内部数据一致性对比的 SQL。
20211031
新特性
支持 writeset 复制功能。
性能优化
主动推进 checkpoint,提升备份成功率。
hash scan 索引选择优化。
热点更新性能优化支持 insert on duplicate key update。
bug 修复
修复热点更新打开后性能不稳定的问题。
修复 instant ddl 后回滚 update 操作导致 crash 的问题。
修复在开启列压缩后,create table select 语句不会继承压缩属性的问题。
修复在开启 skip-grant-table 选项后,show variables like tencent_root%语句导致实例 crash 的问题。
修复 Query Rewriter 插件在 read only 模式下 crash 的问题。
修复 hash scan 在分区表下的1032的问题。
修复 mts 模式下,第一个大事物 sbm 为0的问题。
修复 slave_preserve_commit_order=ON,slave_transaction_retries=0 时的 stop slave 卡死问题。
修复若干 XA 事务的 bug。
修复创建带有 default 值的 json 字段后,在 show create 时拼装 SQL 错误的问题。
修复事务被阻塞后,断开连接事务无法回滚的问题。
修复长记录下,innodb persistent 方式的统计信息可能为0的问题。
移植8.0 修复 ANALYZE TABLE 可能导致查询堆积的问题。
修复 innodb 统计信息变更后,不能及时同步给 Server 层的问题。
修复统计采样可能阻塞写入过长,而导致崩溃的问题 (Bug#31889883)。
修复 innodb 统计信息更新流程,可能会导致一定机会读零的问题 (BUG#105224)。
修复 MVCC 可能出现复杂度为 O(N^2) 的行为(Bug#28825617)。
修复连接释放时,关闭临时表触发 binlog rotate 导致 crash。
20210630
新特性
新增命令 SHOW SLAVE DETAIL [FOR CHANNEL channel],用于展示当前 slave 已经回放的 binlog 时间戳。
支持 transaction_read_only/transaction_isolation 参数。
性能优化
优化 hash scan 的应用速度;在 slave 端,通过聚合 event 多个相同的 binlog event 来提升 hash scan 的应用速度。
bug 修复
修复更新语句触发的临时表的重复主键、找不到列、列长度过长问题。
修复 DDL 过程中统计信息可能为零的问题。
修复连接状态统计中 undo log size 统计不准确的问题。
修复查询 metadata_locks 表导致实例 crash 的问题。
修改 of 为非保留关键字。
修复动态修改版本号在新连接显示无效问题。
修复 page_cache cleanning 访问野指针的问题。
修复执行 alter table 语句可能引发“Incorrect key file for table”报错的问题。
修复分区表使用内存过大的问题。
修复 show processlist 返回结果集中 TIME 字段出现-1的问题。
修复 slave 节点 XA 事务复制锁等待问题。
修复分区表在 equal range 查询时错误加锁问题。
20210331
新特性
支持 delete/insert/replace 的 returning 语法,可以返回该 statment 所操作的数据行。 其中,delete 语句返回前镜像数据,insert/replace 返回后镜像数据。
支持列压缩功能:当前有针对行格式的压缩和针对数据页面的压缩,但是这两种压缩方式在处理一个表中的某些大字段和其他很多小字段,同时对小字段的读写很频繁,对大字段访问不频繁的情形中,它的读写访问都会造成很多不必要的计算资源浪费,列压缩可以压缩那些访问不频繁的大字段,同时能够减少整行字段的存储空间,提高读写访问的效率。
支持用户侧查询 character_set_client_handshake 参数显示当前值功能。
支持主动清理日志文件占用的 page cache:该功能采用滑动窗口的方式通过 posix_fadvise 主动清理日志文件占用的 page cache,降低操作系统内存压力,提升整机稳定性。
性能优化
CREATE INDEX 并行化:CREATE INDEX 过程中需要执行外部归并排序,比较耗时。本次引入了并行外部归并排序算法,使 CREATE INDEX 耗时降低50%以上。
优化扫描 flush list 刷脏:通过优化刷脏机制,解决了创建索引过程中的性能抖动问题,提升了系统稳定性。
官方 bug 修复
修复内存泄漏问题。
移植8.0版本 json 的修复,提升使用 json 的稳定性。
修复 hash scan 导致1032问题。
修复热点更新功能的并发安全问题。
批量移植官方 gcol bug 修复。
修复 datetime 类型在某些场景下与字符串比较失败的问题。
修复主从 bp 同步功能文件句柄未释放 bug。
修复设置 offline_mode 的同时新建连接,可能触发死锁 bug。
修复范围查询并发场景下 m_end_range 设置不正确,导致的 crash 问题。
修复 groupby json 字段中 temporay table的update 耗时较长问题。
20201231
新特性
支持 SELECT FOR UPDATE/SHARE 使用 NOWAIT 和 SKIP LOCKED 选项。
支持动态设置 thread_handling 线程模式或连接池模式。
支持主从 buffer pool 同步功能。
用户连接状态监控功能,监控项包括:同步异步 IO、内存、日志量,CPU 时间、锁占用时长等。
性能优化
事务子系统优化,提升高并发性能。
大事务 crash recover 启动时间优化。
redo log 刷盘优化。
buffer pool 初始化时间优化。
utf8/utf8mb4 字符串效率优化。
审计性能优化。
解除了设置 gtid_purged 必须为空的限制。
备份锁优化:引入3个新的 SQL 语句,LOCK TABLES FOR BACKUP, LOCK BINLOG FOR BACKUP 和 UNLOCK BINLOG。相对于 FLUSH TABLES WITH READ LOCK 的上锁备份方式导致整个数据库不可提供服务,这三个语句是为了用于能够轻量级地对数据进行上锁,从而支持备份过程中的数据访问。不论是物理备份还是逻辑备份都可以使用这些语句来实现备份一致性的保护。
大表 drop table 优化。
官方 bug 修复
修复对 performance_schema 查询时 hang 住的问题。
修复 digest_add_token 函数里面的 overflow 的问题。
修复 MySQL 官方 truncate table 时,ibuf 访问导致 crash 的问题。
修复 left join 语句下 const 提前计算导致的查询正确性问题。
20200930
性能优化
备份锁优化,FLUSH TABLES WITH READ LOCK 的上锁备份方式导致整个数据库不可提供服务,该版本中提供了轻量级的数据备份加锁方式。
大表 drop table 优化,快速清理自适应哈希的优化(innodb_fast_ahi_cleanup_for_drop_table 控制),可以大幅度缩短 drop 大表时,清理自适应哈希索引的耗时。
官方 bug 修复
修复 MySQL 官方 truncate table 时,ibuf 访问导致 crash 的问题。
修复有快速加列后的冷备无法拉起的问题。
修复频繁释放 innodb 内存表对象,导致性能下降的问题。
修复 left join 语句下 const 提前计算,导致的查询正确性问题。
修复 sql 限流和 query rewrite 插件因为 Rule 类名冲突,导致 core 的问题。
修复多个 session 下 insert on duplicate key update 语句的并发更新问题。
修复针对 auto_increment_increment 并发插入,导致 duplicate key error 失败的问题。
修复 innodb 内存对象淘汰触发宕机的问题。
修复热点更新功能的并发安全问题。
修复升级 jemalloc 版本至5.2.1,开启线程池触发 coredump 的问题。
修复 fwrite 无错误处理,导致审计日志不完整的问题。
修复 mysqld_safe以root 用户启动时,不打印日志的问题。
修复 alter table exchange partition 导致 ddl log 文件增长的问题。
20200701
官方 bug 修复
修复 INNOBASE_SHARE index mapping 错误问题。
20200630
新特性
支持 SELECT FOR UPDATE/SHARE 语句使用 NOWAIT 和 SKIP LOCKED 选项。
支持大事务优化功能,可缓解因大事务导致主从延迟、备份失败等问题。
审计性能优化:支持异步审计功能。
官方 bug 修复
修复 digest_add_token 函数里面的溢出问题。
修复 insert blob 导致实例 crash 的问题。
修复 hash scan 在 event 中出现对同一行更新而找不到记录,所造成主从中断的问题。
修复对 performance_schema 查询时 hang 住的问题。
20200331
新特性
新增官方 MySQL 5.7.22 版本的 JSON 系列函数。
支持基于电商秒杀场景的 热点更新 功能。
支持 SQL 限流
数据加密功能支持 KMS 自定义密钥加密。
bug 修复
修复全文索引中,词组查找(phrase search)在多字节字符集下存在的崩溃问题。
修复高并发情况下,CATS 锁调度模块存在的崩溃问题。
20190830
新特性
支持 binlog 文件损坏时跳过继续解析的功能,在主实例及 binlog 均损坏的场景下,可最大程度在备库中恢复数据并提供使用。
支持非 GTID 模式到 GTID 模式的数据同步。
支持用户通过 show full processlist; 查询“用户线程内存使用信息”。
支持表 快速加列功能,不拷贝数据,不占用磁盘空间和磁盘 I/O,业务高峰期可以实时变更。
支持自增值持久化。
官方 bug 修复
修复 Grant 中列名出现保留字会造成复制中断问题。
修复分区表上进行反向扫描导致 SQL 执行效率变慢的问题。
修复主键表虚拟索引数据不一致导致查询结果异常的问题。
修复 InnoDB 主键范围查询导致数据缺失的问题。
修复对带有空间索引的表执行 DDL 导致系统 crash 的问题。
修复 binlog 过大时,心跳信息中文件长度溢出导致主备中断的问题。
修复删除 event 导致其他 event 不按时执行的问题。
修复汇总查询结果错误的问题。
20190615
新特性
支持透明数据加密功能。
20190430
官方 bug 修复
修复在子查询中使用长文本功能时的空指针引用问题。
修复 Hash Scan 所引起的主备中断问题。
修复因主库 binlog 切换导致 slave 节点 I/O 线程中断的问题。
修复使用 NAME_CONST 导致的 crash 问题。
修复字符集引起的 illegal mix of collation 问题。
20190203
新特性
支持异步删除大表:异步、缓慢地清理文件,进而避免因删除大表导致业务性能出现抖动情况,该功能需 提交工单 申请开通。
支持 CATS 锁调度方式。
GTID 开启时,支持事务中创建和删除临时表和 CTS 语法,可通过 cdb_more_gtid_feature_supported 参数进行设置。
支持隐式主键,该功能需 提交工单 申请开通。
支持非 super 权限用户 kill 其他用户会话的功能,通过 cdb_kill_user_extra 参数进行设置,默认值为 root@%。
支持企业级加密函数,该功能需 提交工单 申请开通。
官方 bug 修复
修复 binlog 缓存文件空间不足时造成复制中断的问题。
修复 fsync 返回 EIO,反复尝试陷入死循环的问题。
修复 GTID 空洞造成复制中断且不能恢复的问题。
20180918
新特性
支持自动 kill 空闲事务,减少资源冲突,该功能需 提交工单 申请开通。
Memory 引擎自动转换为 InnoDB 引擎:如果全局变量 cdb_convert_memory_to_innodb 为 ON,则创建/修改表时会将表引擎从 Memory 转换为 InnoDB。
支持隐藏索引功能。
支持 Jemalloc 内存管理,替换 jlibc 内存管理模块,降低内存占用,提高内存分配效率。
性能优化
binlog 切换优化,减少 rotate 持有锁时间,进而提升系统性能。
提升 Crash Recovery 时的恢复速度。
官方 bug 修复
修复由于主备切换而引起 event 失效的问题。
修复 REPLAY LOG RECORD 所引起的 Crash 问题。
修复 Loose index scans 所导致查询结果错误的问题。
20180530
新特性
支持 SQL 审计功能。
支持表级别的并行复制,该功能需 提交工单 申请开通。
性能优化
slave 实例的锁优化,提高 slave 实例同步性能。
select ... limit 的下推优化。
官方 bug 修复
修复由于 relay_log_pos & master_log_pos 位点不一致导致切换失败的问题。
修复 Crash on UPDATE ON DUPLICATE KEY 产生的 Crash 问题。
修复由于 JSON 列导入时引起的 “Invalid escape character in string.” 错误。
20171130
新特性
支持 information_schema.metadata_locks 视图,查询当前实例中的 MDL 授予和等待状态。
支持语法 ALTER TABLE NO_WAIT | TIMEOUT,给 DDL 操作赋予等待超时,该功能需 提交工单 申请开通。
支持线程池功能,该功能需 提交工单 申请开通。
官方 bug 修复
根据 bytes_data 计算 innodb_buffer_pool_pages_data,避免该参数溢出。
修复在异步模式下速度限制插件不可用的问题。
小版本
说明
20220303
Bug 修复
修复异步删除大表中 row_mysql_truncate_t::file_name 使用 mem_strdup 分配的内存时,释放异常的问题。
20220302
Bug 修复
修复 sql_update.cc 中内存泄漏问题。
20220301
新特性
支持动态配置自旋周期,通过动态参数 innodb_spin_wait_pause_multiplier 可以动态调整自旋周期(0~100)。该参数用于临时调整,不支持通过控制台进行固化修改。
支持打印死锁环路信息的功能。通过参数 innodb_print_dead_lock_loop_info 开启,开启后发生死锁时,使用 show engine innodb status 可以查看死锁环路信息。
bug 修复
修复 slave 重启后 memory 表产生匿名 GTID 事务的问题。
修复 root@localhost 权限缺失,导致升级失败的问题。
修复 innodb_row_lock_current_waits 等监控变量值存在异常情况的问题。
修复审计插件 sql type 映射错误的问题。
20211030
新特性
支持大事务复制优化。
性能优化
优化 hash scan 的应用速度。
bug 修复
修复大量表查询导致 OOM 的问题。
修复将 innodb_thread_concurrecy 设置成0后,导致的死循环问题。
修复长记录下统计信息为0问题。
修复 sbm 跳变问题。
修复 LOCK_binlog_end_pos hang 的问题。
20210630
新特性
支持大事务复制优化。
bug 修复
修复 index merge 打开的情况下拷贝的正确性问题。
修复在 row 模式下,打开 cdb_more_gtid_feature_supported 时,中断 create table select 的执行会复制中断。
修复 max(id) 大于 show create table 中 AUTO_INCREMENT 的 Bug。
20201231
官方 bug 修复
修复由于 hash scan,导致1032问题。
修复 row 格式下 replace into,导致主从 auto increment 值不一致的问题。
修复 SQL 解析申请内存未释放,导致内存泄漏的问题。
修复 create table as select 建表时,跳过 sql mode 检查的问题。
修复 Insert 语句在插入默认值时,跳过 sql mode 检查的问题。
修复绑定参数执行 update 语句时,跳过 sql mode 检查的问题。
20200915
新特性
支持 SQL 限流 功能。
性能优化
buffer pool 初始化加速优化 。
官方 bug 修复
修复主备 rename table 都 hang 住的问题。
修复当设置 event_scheduler 为 disable,cdb_skip_event_scheduler 从 on 改为 off 时,出现 crash 问题。
修复 tencentroot 最大链接数未计入 srv_max_n_threads,造成 sync_wait_array 相关断言失败的问题。
修复由于其他云服务的 MySQL 5.6 和 腾讯 MySQL 5.6 的系统库中有些表的结构不同,导致主从开启并行复制时,出现 crash 问题。
修复 INSERT ON DUPLICATE KEY UPDATE THE WRONG ROW 问题。
修复 index_mapping 出现错误问题。
修复 mtr 失败 bug 问题。
修复 hash scan 在 event 中出现对同一行的更新时,找不到这条记录造成主从中断的问题。
20190930
新特性
用户可通过 show detail processlist; 查询“用户线程内存使用信息”。
官方 bug 修复
修复备库 replication filter 所引起的 gtid 空洞的问题。
修复 Binlog 过大时,心跳信息中文件长度溢出导致主备中断的问题。
修复字符集引起 illegal mix of collation 的问题。
修复 Hash Scan 所引起主备中断的问题。
修复一个 NAME_CONST 用法导致 crash 的问题。
修复因主库 binlog 切换导致 slave 节点 I/O 线程中断的问题。
修复 innodb_log_checusum 所导致备份不兼容的问题。
20190530
官方 bug 修复
修复 RC 模式下读到脏数据的问题。
修复删除临时表会导致备机回放失败的问题。
修复高并发下死锁的问题。
20190203
新特性
异步删除大表:异步、缓慢地清理文件,进而避免因删除大表导致业务性能出现抖动情况,该功能需 提交工单 申请开通。
支持非 super 权限用户 kill 其他用户会话的功能,通过 cdb_kill_user_extra 参数进行设置,默认值为 root@%。GTID 开启时,支持事务中创建和删除临时表和 CTS 语法,可通过 cdb_more_gtid_feature_supported 参数进行设置。
性能优化
分区表的复制回放优化,进而提升分区表的回放速度。
官方 bug 修复
修复临时空间不足所导致主备不一致的问题。
修复热点记录更新挂起的问题。
修复并行复制下 Seconds_Behind_Master 值异常的问题。
20180915
新特性
MEMORY 引擎自动转换为 InnoDB 引擎:如果全局变量 cdb_convert_memory_to_innodb 为 ON,则创建、修改表时会将表引擎从 MEMORY 转换为 InnoDB。
自动 kill 空闲事务,减少资源冲突,该功能需 提交工单 申请开通。
官方 bug 修复
修复 REPLAY LOG RECORD 所导致 crash 的问题。
修复 decimal 精度问题所导致主备时间数据不一致的问题。
20180130
新特性
支持线程池功能,该功能需 提交工单 申请开通。
slave 节点支持动态修改复制过滤条件。
性能优化
drop table 带来的性能抖动。
官方 bug 修复
修复认证密码串导致数据库 crash 的问题。
20180122
新特性
支持 SQL 审计功能。
官方 bug 修复
修复整数溢出的问题。
修复使用全文索引查询出错的问题。
修复复制时 slave 机 crash 问题。
20170830
官方 bug 修复
修复异步模式下 binlog 限速失效的问题。
修复 buffer_pool 状态异常的问题。
修复 SEQUENCE 与隐含主键冲突的问题。
20170228
官方 bug 修复
修复 drop table 中的字符编码 bug。
修复 replicate-wild-do-table 无法正确过滤 db 或者 table 中含有小数点等特殊字符的问题。
修复备库产生的 rotate 事件后,导致 SQL 线程提前退出的问题。
20161130
性能优化
lock_log 锁拆分,减少 lock log 占用的时间,提高并发性能。
主库 ACK 线程独立出来,提升响应时间。
用户线程在等待 ACK 的过程中不允许 kill 功能,以防止幻象读。
修复在 sync_binlog != 1 时导致不必要的 lock_sync 锁。