| | | | |
| | 新特性 - 支持通过 SHOW FULL PROCESSLIST、information_schema.FULL_PROCESSLIST 查看当前 SQL 的 CPU 和内存消耗,帮助快速定位高 CPU、高内存消耗的 SQL 语句。
- 新增 Extra Port 独立监听线程,并在共享 Acceptor 模式下优先处理 Extra Port 连接,确保主端口发生连接风暴时管理连接仍可正常建立,增强故障可观测性。
性能优化 - 将主键、唯一键和外键提取路径生成的两类 WriteSet 哈希精简为单一的排序规则感知哈希,同时保留截断键补偿哈希,以扩大依赖历史覆盖的事务范围。
问题修复 - 修复备库使用 HASH_SCAN 回放全文索引更新时,可能复用过期的 FTS_DOC_ID 并导致数据库崩溃的问题。详情请参见社区 Bug#119957。
- 修复写入 XA PREPARE、两阶段 XA COMMIT 或 XA ROLLBACK 终态事件后,在存储引擎处理完成前轮转 Binlog,可能导致崩溃恢复时事务决议与存储引擎状态不一致的问题。详情请参见社区 Bug#110533。
- 修复预处理语句(Prepared Statement)重新预处理后,CCL digest 状态未随语句 MEM_ROOT 交换的问题。
- 修复空库名事务边界事件触发无效的数据库选项查找,并可能复用过期 db_charset 的问题。详情请参见社区 Bug#115982。
| | |
| | 问题修复 修复了部分已知安全问题,提升实例的安全性。 | | |
| | 新特性 - 支持将 InnoDB 自增主键(AUTO_INCREMENT)上限持久化至聚簇索引根页,避免因实例重启、表重新打开、字典缓存淘汰后自增值回退,导致隐式插入复用历史主键。
- 支持 Plan Cache 功能,MySQL 5.7 的实例针对高频单表 SELECT 预编译语句缓存并复用执行计划,降低重复优化开销。详情请参见 Plan Cache。
性能优化 - 通过聚合同类 Binlog 事件、优化索引选择逻辑,提升哈希扫描(Hash Scan)执行效率。
- ARM64(aarch64)架构默认开启 Binlog 文件预分配与 Binlog 锁分片机制,降低高并发组提交场景下的锁竞争问题。
问题修复 - 修复读已提交(READ COMMITTED)隔离级别下,关闭状态的过期 ReadView 在重新打开、克隆操作的竞争窗口中被错误克隆的问题。
- 修复 Linux Native AIO 在故障关闭流程中持有 AIO array 互斥锁产生自死锁的问题,避免 IO 异常造成连接清理任务堆积。
- 修复通过 UPDATE 显式修改 InnoDB 自增列后,内部计数器未同步推进,导致后续隐式 INSERT 复用历史主键值的问题。
- 修复显式 UPDATE 修改 InnoDB AUTO_INCREMENT 列后内部计数器未推进,后续隐式 INSERT 可能复用旧值的问题。
- 修复实例关闭流程中等待连接断开的条件判定逻辑不准确问题,降低关闭链路发生阻塞的风险。
- 修复 CCL 规则针对 TRUNCATE 语句、EXPLAIN 语句的 SQL Digest 处理异常问题,并整理相关测试用例覆盖。
- 修复表空间容量超过 32TB 场景下,Buffer Pool flush_rbt 刷新队列乱序的问题。详情请参见社区 Bug#105652。
| | |
| | 新特性 - 支持了线程池动态启停能力,并支持运行时在线程池/原生连接处理模式间动态迁移连接。
性能优化 - 优化了 rec_get_offsets 实现,降低 ARM 平台 offset 解析开销。
- 优化了 innodb_fill_factor 的上限取值,避免批量建索引场景下的页分裂风暴。
问题修复 - 修复无主键 parent table 在 writeset 跟踪场景下会导致 HA_ERR_FOUND_DUPP_KEY 的问题。详情请参见社区 BUG#109923。
| | |
| | 新特性 - 支持了运行期间动态启停 page tracking 能力,用于支持高频增量备份。
- 支持了逻辑预读功能,支持异步预加载 scan 所需的 page,减少用户线程等待 IO 的时间,从而提升 scan 的性能。更多详细信息,请参见逻辑预读。
- 新增了表级并行复制功能,提升从库回放 binlog 时的并行度,降低主从延迟。更多详细信息,请参见表级并行回放。
- 新增了 event 对主从切换的支持,新创建的 event 在主从切换后也能正常调度。更多详细信息,请参见设置定时和周期性任务。
性能优化 - 优化了从库 relay log purge 的流程,减少了持锁时间,从而减少了事务提交时的半同步时延。
- 优化了唯一索引 DML 期间的加锁流程,减小了加锁粒度,从而提高并发更新的性能。
| | |
| | 性能优化 - 优化了 binlog 写入性能,通过预分配 binlog 文件空间减少追加写入的开销。
- 优化了 binlog 提交阶段的唤醒机制,减少线程无效唤醒,提升高并发场景下的写入效率。
问题修复 - 修复事务大小超过 max_binlog_cache_size 限制时 binlog 文件损坏的问题。
- 修复了大事务 binlog 优化的一个多线程并发问题。
| | |
| | 新特性 - 新增秒级加列功能 (Instant Add Column),不拷贝数据,不占用磁盘空间和磁盘 I/O。更多详细信息,请参见秒级加列。
- 新增 Returning 语法,该功能支持 DML 语句返回 Resultset。关于 Returning 语法的更多详细信息,请参见 RETURNING。
- 支持并行 DDL 功能。更多详细信息,请参见并行 DDL。
性能优化 - 优化了 InnoDB 引擎的 Insert 执行性能。
问题修复 - 修复了回收站功能(Recycle Bin)在边界场景下的潜在宕机问题。
| | |
| | 新特性 - 新增了回收站功能(Recycle Bin),支持将删除的表转移至回收站,避免误操作造成的数据丢失。更多详细信息,请参见 Recycle Bin。
- 针对长 IN list 场景,新增 IN list to subquery 优化, 使优化器选择索引扫描,提升性能。更多详细信息,请参见 IN 谓词性能优化。
- 内核 SQL 限流新增了对 SQL 指纹(digest)的支持,允许用户对指定 SQL 模板进行限流。
- 支持在 performance schema 中查看 DDL 进度和 processlist。
性能优化 问题修复 - 修复了社区版 MySQL 操作日志潜在的内存泄露问题。
- 修复了列压缩场景下扩展 varchar 造成数据损坏问题。
| | |
| | - 为所有 MySQL 线程增加 pthread name,方便线程状态的分析。
- 优化 Binlog rotate,通过在内存中维护 Binlog 序列号,减少 Binlog 序列号生成的代价。
- 支持使用 fdatasync() 来优化 InnoDB 写入性能。
- 通过 fallocate() 优化 redo log 文件在创建时的 IO 尖刺。
- 支持 invisible index 功能,在不实际删除索引的情况下,将其从优化器的考虑范围中移除。
- 支持 limit offset 下推功能,大幅提高分页查询性能。
- 优化全量 SQL 的性能,同时支持统计用户登入登出操作,增加 IO 等待时延、事务 ID 等信息统计。
- DDL 语句支持 [wait [n]|no_wait] 语法,SELECT ... FOR UPDATE|SHARE 支持 [NOWAIT | SKIP LOCKED] 语法。
| | |
| | - 对 MySQL 慢日志进行了增强,增加了线程池排队,网络发包,MDL 锁等待时间的统计;优化了扫描行数统计以及慢 SQL 判断逻辑。
- Buffer pool 初始化流程优化,减少 mysqld 进程启动时间,故障场景下恢复速度显著提升。
- 新增将 disabled_storage_engines 中禁用的存储引擎转换为 InnoDB 的支持。
- 支持 statement outline 功能。可以通过新增的 dbms_outline语法包来创建、删除、查看statement outline设置。通过该功能,可以在不修改用户查询请求的情况下,固化调整查询执行计划,解决用户的性能问题。关于该特性的详细信息,请参见 Statement Outline。
- 支持闪回查询功能(flashback query)。通过该功能,用户可以查询指定时间范围内,任意时间点(精度到秒级)的数据快照。关于该特性的详细信息,请参见 Flashback Query。
- 新增大事务 binlog 写入优化功能,支持将 binlog 临时文件直接转为正式 binlog 文件,减少相关 IO 开销。
- 修复 Sequence 新增的 nextval 和 currval 与用户自定义函数冲突的问题。
| | |
| | - 实现 NET::buff 扩大后可以自动恢复,避免查询文本较长导致的内存膨胀。
- 修复线程优先级设置成SCHD_RR的潜在问题,默认调高 listener 线程优先级,并修复 listener 线程频繁设置优先级的问题。
- 修复秒杀功能中,使用索引的长度超过 1024B 时,内部数据截断导致的更新失败的问题。
- 修复 Sequence 某个报错信息由于 format 和输入参数不匹配导致的概率性宕机问题。
| | |
| | - 支持 kill_idle_transaction 参数,用于限制事务执行的时长,超过执行时长限制的事务将会被 kill。
- 支持热点行更新(大并发更新同一行)优化,通过更新合并解决并发更新带来的锁冲突问题,大幅提高热点行更新的性能。并增加了 logic_update_sync_delay 参数,用于设置合并操作的等待时间。
- 支持 Sequence Engine,提供了一种简单的获取唯一递增序列的方法。
- 禁止在 Binlog 复制过程中修改 loose_rds_slave_search_hash_reverse_on_dup 参数,避免导致复制出错。
| | |
| | | | |
| | - 支持备份锁,减少物理备份期间的加锁粒度,减少备份加锁对业务查询的影响。
- 通过共享内存支持 Buffer Pool 重启快速预热,优化重启场景业务的查询性能。
- 修复 root 权限用户可以修改 mysql.global_grants 系统表的问题。
- 为 sys 模式添加权限约束,限制对 mysql,performance_schema,sys 库的 DDL 操作。
| | |
| | - 修复全量 SQL 初始化可能不受开关控制的问题。
- 修复 ccl 并发控制限流 explain 语句的问题。
| | |
| | - 修复参数 slave_rows_search_algorithms 取值为 HASH_SCAN 时,备库回放写错数据的问题。
- 修复 max_binlog_cache_size 取值为 4096 时 MySQL 无法启动的问题。
| | |