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 替代。
相关推荐
布朗克1684 小时前
MySQL 及 SQL 注入详细说明
数据库·sql·mysql·1024程序员节
武子康5 小时前
Java-154 深入浅出 MongoDB 用Java访问 MongoDB 数据库 从环境搭建到CRUD完整示例
java·数据库·分布式·sql·mongodb·性能优化·nosql
我科绝伦(Huanhuan Zhou)5 小时前
MySQL一键升级脚本(5.7-8.0)
android·mysql·adb
Austindatabases5 小时前
DBA 从“修电脑的” 到 上演一套 “数据治理” 大戏 --- 维护DBA生存空间,体现个体价值
数据库·dba
LB21125 小时前
Redis黑马点评 day01
数据库·redis·缓存
白小筠5 小时前
创建Django项目
数据库·django·sqlite
扑克中的黑桃A7 小时前
金仓多模数据库平替MongoDB的电子证照国产化实践——从2TB数据迁移到1600+并发支撑
数据库
计算机毕业设计小帅7 小时前
【2026计算机毕业设计】基于Django的社区婴幼儿预防接种系统
数据库·django·课程设计
友友马7 小时前
『 数据库 』MySQL复习 - 内置函数详解
数据库·mysql