暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Mysql8.4新特性

wzf0072 2025-10-15
723

 

Mysql8.4新特性

根据官方文档的介绍,对比MySQL8.0而言,MySQL8.4有如下新特性:

1. 安全增强

默认禁用mysql_native_password插件:从8.4.0开始,默认不再启用mysql_native_password认证插件。如果需要启用,必须在配置文件([mysqld]部分)设置mysql_native_password=ON或启动时使用--mysql-native-password=ON。

TLS证书强制验证:新增系统变量tls-certificates-enforced-validation,用于在启动或重新加载证书时强制验证。如果启用,发现无效证书将阻止启动或加载,并发出警告。

WebAuthn认证插件:新增基于FIDO/FIDO2标准的WebAuthn认证插件(企业版),支持使用安全密钥、生物识别等设备进行认证

新增权限:

1)FLUSH_PRIVILEGES权限:专门用于执行FLUSH PRIVILEGES命令(之前需要RELOAD权限)。升级时,如果用户已有RELOAD权限,会自动授予FLUSH_PRIVILEGES

2)TRANSACTION_GTID_TAG权限:用于设置GTID标签(见下文GTID标签化)

LDAP认证超时控制:新增LDAP连接和响应超时参数(如authentication_ldap_simple_connect_timeout等),默认30秒(仅Linux)

2. InnoDB存储引擎优化

系统变量默认值变更:

innodb_buffer_pool_in_core_file:默认改为OFF(如果支持MADV_DONTDUMP),否则ON

innodb_parallel_read_threads:默认值改为可用逻辑处理器数/8(最小4)

innodb_read_io_threads:默认值改为可用逻辑处理器数/2(最小4)

temptable_max_ram:默认值改为总内存的3%(在1-4 GiB范围内)

temptable_max_mmap:默认值改为0(禁用)

专用服务器自动配置:当innodb_dedicated_server=ON时,innodb_redo_log_capacity的计算从基于内存改为基于CPU,且不再改变innodb_flush_method的值

3. 复制与Group Replication

GTID标签化(Tagged GTIDs):扩展GTID格式为UUID:TAG:NUMBER,允许为事务组分配标签(如区分数据操作和运维操作)。使用:

SET gtid_next = 'AUTOMATIC:tag_name'(会话级)或SET gtid_next = UUID:tag_name:NUMBER(单事务,需要TRANSACTION_GTID_TAG权限)

多线程复制(MTA)支持SQL_AFTER_GTIDS:之前使用SQL_AFTER_GTIDS会强制切换为单线程,现在支持并行复制,提高性能

Group Replication增强:

1) 默认group_replication_consistency=AFTER(强一致性)

2) 新增group_replication_preemptive_garbage_collection(单主模式预垃圾回收)和group_replication_preemptive_garbage_collection_rows_threshold(触发阈值)

3) 新增性能指标(如MEMBER_FAILURE_SUSPICIONS_COUNT)用于网络诊断

4) Clone插件跨小版本兼容:允许在同一个大版本(如8.4.x)的不同小版本间克隆(例如8.4.0克隆到8.4.14)

4. 功能改进

直方图自动更新:使用ANALYZE TABLE ... UPDATE HISTOGRAM AUTO可启用直方图自动更新(默认手动)。

EXPLAIN增强:

1) EXPLAIN FOR SCHEMA schema_name ...:在指定schema中解释查询。

2) EXPLAIN FORMAT=JSON INTO @var:将JSON格式结果存入变量。

新增explain_json_format_version系统变量(1:传统线性格式;2:新的访问路径格式)。

3)集合操作优化:EXCEPT和INTERSECT默认使用Hash算法(通过hash_set_operations控制),可通过set_operations_buffer_size调整内存。

新增SQL语法:

SHOW PARSE_TREE:显示SELECT语句的解析树(仅调试版)。

TABLESAMPLE子句:支持抽样查询(如SELECT ... FROM table_name TABLESAMPLE BERNOULLI(10))。

5. 企业版增强

对于使用企业版的同学,有如下变更:

数据脱敏(Data Masking):

1)支持自定义脱敏字典存储库(通过component_masking.masking_database变量)。

2)支持定期刷新脱敏字典(component_masking.dictionaries_flush_interval_seconds)。

防火墙(Firewall):

1)存储过程改为事务性操作(错误时回滚)。

2)新增mysql_firewall_reload_interval_seconds变量定期重载规则。

3) 支持自定义防火墙数据库(mysql_firewall_database)。

4) 弃用用户级防火墙存储过程(改用组策略)。

6. 弃用和移除

弃用(未来版本移除):

1)变量:group_replication_allow_local_lower_version_join

2)通配符授权:GRANT ... ON db%.*(未来%和_将视为普通字符)

3)非标准外键:引用非唯一键或部分键的外键(需设置restrict_fk_on_non_standard_key=OFF启用)

立即移除:

1)插件:keyring_file、keyring_encrypted_file、keyring_oci(改用对应的Component)。

2)语句:FLUSH HOSTS(改用TRUNCATE performance_schema.host_cache)。

3) 复制语法:CHANGE MASTER TO → 改用CHANGE REPLICATION SOURCE TO。

3)系统变量:default_authentication_plugin(改用authentication_policy)。
 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论