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 替代。
相关推荐
奋斗的牛马2 分钟前
OFDM理解
网络·数据库·单片机·嵌入式硬件·fpga开发·信息与通信
忧郁的橙子.1 小时前
一、Rabbit MQ 初级
服务器·网络·数据库
杰杰7981 小时前
SQL 实战:用户访问 → 下单 → 支付全流程转化率分析
数据库·sql
爬山算法1 小时前
Redis(120)Redis的常见错误如何处理?
数据库·redis·缓存
FREE技术1 小时前
学生成绩管理系统 基于java+springboot+vue实现前后端分离项目并附带万字文档(源码+数据库+万字详设文档+软件包+安装教程)
java·vue.js·spring boot·mysql
野生技术架构师1 小时前
盘一盘Redis的底层数据结构
数据结构·数据库·redis
('-')2 小时前
《从根上理解MySQL》第一章学习笔记
笔记·学习·mysql
EelBarb2 小时前
sqlite数据库迁移至mysql
数据库·mysql·sqlite
q***51892 小时前
离线安装 Nginx
运维·数据库·nginx
R.lin2 小时前
memcached 的核心工作机制、优缺点、适用场景以及常见问题的处理方式
数据库·缓存·memcached