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 替代。
相关推荐
砚边数影13 分钟前
数据可视化入门:Matplotlib 基础语法与折线图绘制
数据库·信息可视化·matplotlib·数据可视化·kingbase·数据库平替用金仓·金仓数据库
orange_tt22 分钟前
Djiango配置Celery
数据库·sqlite
云小逸1 小时前
【nmap源码学习】 Nmap网络扫描工具深度解析:从基础参数到核心扫描逻辑
网络·数据库·学习
·云扬·1 小时前
MySQL Binlog落盘机制深度解析:性能与安全性的平衡艺术
android·mysql·adb
肉包_5111 小时前
两个数据库互锁,用全局变量互锁会偶发软件卡死
开发语言·数据库·c++
霖霖总总2 小时前
[小技巧64]深入解析 MySQL InnoDB 的 Checkpoint 机制:原理、类型与调优
数据库·mysql
此刻你2 小时前
常用的 SQL 语句
数据库·sql·oracle
それども3 小时前
分库分表的事务问题 - 怎么实现事务
java·数据库·mysql
·云扬·3 小时前
MySQL Binlog 配置指南与核心作用解析
数据库·mysql·adb
天空属于哈夫克33 小时前
Java 版:利用外部群 API 实现自动“技术开课”倒计时提醒
数据库·python·mysql