讲师中心 微信公众号
AI工具推荐 视频效率加速

MySQL 8.4 LTS版本有哪些新特性_查阅官方手册了解架构调整

浅静君_3207

浅静君_3207

发布时间:2026-05-28 17:24:26

|

758人浏览过

|

来源于php中文网

原创

MySQL 8.4 LTS不是功能大爆发版本,而是将8.1–8.3中验证成熟的架构调整和默认行为优化打包为长期支持基线,升级关键在于关注默认值变更与行为收敛点,如innodb_change_buffering默认改为none、group_replication_consistency默认为BEFORE_ON_PRIMARY_FAILOVER、innodb_redo_log_capacity替代旧日志参数、mysql_native_password默认禁用等,这些静默变化最易引发性能回退或连接失败。

mysql 8.4 lts版本有哪些新特性_查阅官方手册了解架构调整

直接说结论:MySQL 8.4 LTS 不是“功能大爆发”版本,而是把过去几年创新版(8.1–8.3)中验证成熟、生产可用的架构调整和默认行为优化,打包进一个长期支持基线。查阅官方手册时,重点不是找“全新功能”,而是盯紧 默认值变更 和 行为收敛点 —— 这些才是升级后最可能出问题的地方。

innodb_change_buffering 默认从 all 改为 none

这个改动影响非常实际:8.4 启动后,InnoDB 默认不再缓存非唯一二级索引的插入/删除标记操作。以前 innodb_change_buffering=all 会把这类写操作先攒在缓冲区,等页面读入内存再合并,降低随机 I/O;现在设为 none,所有变更都立即落盘或走正常路径。

适用场景:
- SSD/NVMe 环境下,随机写性能足够强,change buffer 的收益变小,反而可能因争用缓冲池引发锁等待
- OLTP 主键写密集、二级索引更新少的业务,基本无感
- 但如果你的表有大量非唯一二级索引 + 高频批量 INSERT/DELETE,QPS 可能小幅下降,延迟毛刺变多

容易踩的坑:
- 沿用旧 my.cnf 未显式配置该参数,结果发现批量导入变慢,排查半天才意识到是默认值变了
- 误以为是硬件或配置问题,反复调 innodb_io_capacity,其实根源在 change buffer 被关了

group_replication_consistency 默认为 BEFORE_ON_PRIMARY_FAILOVER

组复制(MGR)的事务一致性保障前移了。8.0 默认 EVENTUAL,主切后新主可能还没回放完全部 binlog 就开始提供读服务;8.4 默认强制新主在接管前完成所有已提交事务的回放。

这意味着:
- 故障切换时间略长(通常多几百毫秒),但应用读不到“跳变”数据
- 如果你的应用依赖“最终一致性”做宽松读取(比如报表类查询跑在只读节点),切换后可能短暂卡住或超时
- BEFORE_ON_PRIMARY_FAILOVER 不影响正常主从复制,只作用于 MGR 内部故障转移流程

关键提醒:
- 该参数不能动态 SET,必须在 my.cnf 中配置并重启生效
- 若需兼容旧行为,可手动设回 EVENTUAL,但需承担一致性风险

innodb_redo_log_capacity 替代 innodb_log_file_size + innodb_log_files_in_group

Redo Log 管理方式重构了。8.4 废弃了老式双参数组合,统一用单参数 innodb_redo_log_capacity 控制总容量(单位字节)。例如原配置 innodb_log_file_size=1G × 2 = 2G,现在直接设 innodb_redo_log_capacity=2147483648。

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载

为什么这样改:
- 避免用户误配导致日志文件数不匹配、启动失败(如只改 _file_size 忘改 _files_in_group)
- 官方可更灵活控制内部日志段分配策略,尤其适配高吞吐写入场景

实操注意:
- 升级前必须停库,用 mysqld --initialize-insecure 或手动清理旧日志文件(ib_logfile0, ib_logfile1)
- 首次启动时若检测到旧日志文件存在,会报错退出,提示 “Redo log files exist but redo log capacity is not set”
- 建议在初始化配置中显式写明 innodb_redo_log_capacity,不要依赖自动计算

mysql_native_password 插件默认禁用

连接层最常踩的坑。8.4 默认认证插件是 caching_sha2_password,而 mysql_native_password 被彻底禁用——不是废弃,是默认关掉。

现象很典型:
- 旧 JDBC 驱动(如 Connector/J 5.1.x)、PHP mysqli 扩展、某些 Python MySQL 客户端连不上,报错 Authentication plugin 'caching_sha2_password' cannot be loaded 或类似提示
- CREATE USER ... IDENTIFIED WITH mysql_native_password 会失败,除非先启用插件

解决办法只有两个:
- 在 my.cnf 的 [mysqld] 段加 mysql_native_password=ON,然后重启
- 或升级客户端驱动,使用 8.0+ 版本的 Connector/J,并确保连接字符串含 &serverTimezone=UTC 等兼容项

别忽略这点:很多自动化部署脚本硬编码了 mysql_native_password 创建用户,升级后全挂,得逐个改。

真正麻烦的从来不是“加了什么新功能”,而是这些默认值和行为的静默切换——它们不会报错,但会让系统在某个凌晨三点突然慢下来,或者让某条 SQL 的执行计划彻底偏移。升级前务必在测试环境用真实流量压测,尤其盯住 SHOW ENGINE INNODB STATUS 里的 change buffer 使用率、redo log 刷写延迟、以及 MGR 切换日志里的 consistency wait 时间。

热门AI工具

更多
Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

4443

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

931

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

1169

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

6401

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

3203

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

6380

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

8701

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

1170

2024.04.29

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 189人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn