tencent cloud

文档反馈

TXSQL 内核更新动态

最后更新时间:2023-07-05 16:42:03

本文为您介绍 TXSQL 的内核版本更新说明。

说明:

  • 如何升级 MySQL 实例的内核小版本,请参见 升级内核小版本
  • 升级小版本时,可能会存在部分小版本维护中,无法选取的情况,请以控制台可选小版本为准。
小版本说明
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. 在索引字段较小时,减少采样内存大小,从而减少采样的频率。
      2. 通过 K 路归并来进行排序,能够有效减少归并排序的轮数,从而减少 IO 的次数。
      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
  • 新特性
    • 默认打开 writeset 并行复制。
    • 支持扩展资源组,可对 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)在多字节字符集下存在的崩溃问题。
联系我们

联系我们,为您的业务提供专属服务。

技术支持

如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

7x24 电话支持