MySQL 9.5创新版发布,有哪些新功能?

2025 年 10 月 21 日,MySQL 9.5 创新版正式发布,增加了大量与提升性能、安全性、可管理性以及开发体验相关的新功能。

以下是部分新功能的介绍,完整说明可以参考官方文档:

https://dev.mysql.com/doc/relnotes/mysql/9.5/en/news-9-5-0.html

安全性增强

  • 默认加密复制连接:所有复制通道(包括组复制和恢复通道)默认启用 SSL/TLS 加密,极大地提升了数据同步过程中的安全性。
  • 增强的身份验证:caching_sha2_password_digest_rounds 参数的默认值从 5000 增加到 10000,增加了暴力破解的难度。
  • 弃用弱加密算法:SCRAM-SHA-1 认证方法被标记为弃用,推荐使用更安全的 SCRAM-SHA-256。
  • 连接控制增强:可以配置是否对未知用户(无用户名的连接尝试)进行连接延迟惩罚,能够更好地适应负载均衡器等场景,防止误伤。

性能与可扩展性

  • 二进制日志依赖跟踪优化:binlog_transaction_dependency_history_size 参数的默认值从 25000 增加到 1000000,最大值支持 10000000。这个调整改善了基于 WRITESET 的复制并行度,可以减少副本延迟,尤其是在高并发负载下。
  • InnoDB 日志写入器线程智能化:innodb_log_writer_threads 的默认值现在根据是否启用二进制日志和逻辑 CPU 的数量动态决定,可以为不同规模的系统提供最优的默认配置。
c 复制代码
if (log_bin = OFF)
{
  if ([number of logical CPUs] <= 4)
  {
    innodb_log_writer_threads = OFF
  }
  else
  {
    innodb_log_writer_threads = ON
  }
}
else
{
  if ([number of logical CPUs] <= 32)
  {
    innodb_log_writer_threads = OFF
  }
  else
  {
    innodb_log_writer_threads = ON
  }
}

如果明确设置了该参数的值,不会受到默认值影响。

  • 变更缓冲优化:innodb_change_buffering 的默认值修改为 ALL,这样意味着所有类型的二级索引写入都可以被缓冲,从而减少磁盘 I/O。
  • 优化器改进:引入了针对 DATE 和 DATETIME 类型的独立评估函数以优化性能,并且改进了查询摘要计算,能够更好地区分具有不同特征的相似查询。

管理与运维

  • MySQL 诊断监视器:该版本引入了全新的客户端工具 mysqldm,用于自动收集服务器诊断信息并且输出 JSON 文件,方便提供给 Oracle 支持团队或者用于自行分析。
  • 线程池自动配置:线程池插件现在能够自动检测系统硬件(例如 vCPU 的数量)并且设置最优的默认参数,同时能够自动验证和纠正错误配置,降低了调优的难度。
  • 角色管理增强:引入了 activate_mandatory_roles 选项,提供了更灵活的角色激活控制。
  • 多版本并行安装:支持不同创新版和 LTS 版的并行(Side-by-Side)安装,便于功能测试和版本迁移。
  • 配置与管理:新增 sys.revoke_schema_privileges_from_all_accounts_except() 存储过程,用于批量撤销 schema 权限。同时,遥测相关的系统变量默认改为 disable,并且移除了可能不安全的默认端点值,避免了日志垃圾信息问题。

开发与功能

  • JSON 二元视图:提供了在关系型表和无模式 JSON 文档之间的双向实时映射关系。开发人员可以像操作 JSON 文档一样操作数据库记录,同时获得关系型数据库的 ACID 特性。
  • JavaScript 支持升级:升级至 ECMAScript 2025 标准;增加了从 JavaScript 存储过程调用 SQL 时的结果集大小限制;mle.memory_max 变量支持基于总物理内存的自动配置。
  • 空间数据与 GeoJSON:ST_AsGeoJSON 函数现在会在输出结果中自动包含坐标参考系统信息,确保了几何数据在 JSON 表示中的准确性。
  • 组件与插件更新:弃用 keyring_okv 插件,由基于 KMIP 1.1 协议的 keyring_kmip 组件替代,从而支持更广泛的密钥管理服务。遥测组件引入了秘密解码服务,用于安全地处理 OpenTelemetry 的头部信息。

弃用与移除

  • 移除已弃用项:彻底移除了 group_replication_allow_local_lower_version_join、replica_parallel_type 等之前已经标记为弃用的变量和插件。
  • 插件替换:移除了旧的 semisync_master 和 semisync_slave 插件,由名称更准确的 semisync_source 和 semisync_replica 替代。
相关推荐
倔强的石头_15 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
于眠牧北2 天前
MySQL的锁类型,表锁,行锁,MVCC中所使用的临键锁
mysql
李广坤3 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
Turnip12024 天前
深度解析:为什么简单的数据库"写操作"会在 MySQL 中卡住?
后端·mysql
爱可生开源社区4 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1774 天前
《从零搭建NestJS项目》
数据库·typescript
加号35 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏5 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐5 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端