MySQL 8.4 版本(LTS) 发布,一睹为快

前言

Oracle 前几天发布了 MySQL 8.4 版本(LTS), 该版本是创新版的第一个长期支持版本。详细规划,请移步 技术译文 | 一文了解 MySQL 全新版本模型

关于 MySQL 的版本发布规划

图片

Oracle MySQL 官方开发团队推出的新版本将过渡到新的 MySQL 版本模型。MySQL 8.1.0 是第一个创新版本,8.0.34+ 将只进行错误修复,直到 8.0 生命周期结束(EOL,定于 2026 年 4 月)。

MySQL 8.x 版本最终将成为 LTS,这将为用户从 8.0.x 迁移到 8.x LTS 版本提供充足的时间。

对我们的影响 ,总结起来就是:
  1. 如果用户想要 MySQL 数据库的最新功能、改进和bug fix,请使用创新版本(例如 8.1.x、8.2.x、8.3.x 等)。

  2. 如果用户 MySQL 只需要错误修复,请使用 8.0.x 版本(例如 8.0.35、8.0.36、8.0.37 等)。

  3. 如果用户使用的是国内云厂商的RDS MySQL 数据库服务,具体版本支持计划请参考各个厂商的相关公告。

言归正传,聊聊 8.4 的技术特性。

8.4 功能变更

1   MySQL 密码认证

认证插件:默认情况下, mysql_native_password 插件被禁用, 如果需要启用该插件,需要在启动时指定 --mysql-native-password=ON 或者在my.cnf 文件里面配置 mysql_native_password=ON 

2 InnoDB 相关默认参数变化

重点说3个吧

innodb_io_capacity: 默认值改成了10000,之前是200。目前绝大部分磁盘都是 SSD  ,200 这个值的确少了点。

innodb_buffer_pool_instances: 调整取值的算法,取min(innodb_buffer_pool_size / innodb_buffer_pool_chunk_size *1/2,  逻辑 CPU * 1/4)

innodb_adaptive_hash_index:  默认改为 OFF ,之前是ON ,AHI 是 DDL 不稳定因素之一 ,这次终于默认关闭了。开启也带来不了多少性能提升。

其他的 各位读者朋友可以看官方文档或者下面的截图:

3  复制相关

主从复制参数  SOURCE_RETRY_COUNT  默认值变更为 10,也即主从复制关系异常时,从库尝试连接主库10次。每次间隔的时间由 SOURCE_CONNECT_RETRY 决定,默认 60s 。

在 MySQL 的主从复制配置中,SOURCE_RETRY_COUNT 和 SOURCE_CONNECT_RETRY 决定复制过程中从服务器尝试重新连接到主服务器的行为。

SOURCE_RETRY_COUNT:从服务器在复制过程中遇到错误(如网络问题或访问冲突)时,尝试重新访问主库的重试次数。默认情况下,如果从服务器在读取二进制日志文件时遇到错误,它会停止复制并等待下一次 poll 操作(通常是几秒到几十秒,取决于 REPLICATE_RECONNECT 参数的设置)。如果设置了 SOURCE_RETRY_COUNT,从服务器将在这个次数范围内尝试重新读取错误发生的位置,而不是立即停止复制。

SOURCE_CONNECT_RETRY:从服务器尝试重新连接到主服务器的间隔时间。当从服务器由于某些原因与主服务器的连接断开时(比如主服务器重启或网络中断),从服务器会等待 SOURCE_CONNECT_RETRY 指定的秒数后尝试重新建立连接。如果连接失败,从服务器将继续在每隔 SOURCE_CONNECT_RETRY 秒尝试重连,直到成功为止。

之前没有注意改参数,这次补习一下。

4  master/slave 关键字变化

前几年为了政治正确官方决定去掉关键字  master ,slave ,现在终于在 8.4 版本里面去掉了,使用者需要做如下替换:

master  ---> source
slave   ---> replica

这里要辛苦运维开发同学做版本兼容。凡是涉及 这两个词的状态参数, 命令语句 都要修改。不过 8.4 版本应用到是生产版本还有好多年,习惯命令行的朋友还不用着急修改。

5  SQL_AFTER_GTIDS 兼容 MTA.

以前,当复制启用 并行复制 MTA功能并且用户尝试 SQL_AFTER_GTIDS,"START REPLICA"  会触发警告 ER_MTS_FEATURE_IS_NOT_SUPPORTED,并且复制会被切换到单线程模式。8.4 版本 ,"START REPLICA"  语句的 "SQL_AFTER_GTIDS" 选项兼容 MTA 。

6 组复制 参数相关

group_replication_consistency 系统变量的默认值从EVENTUAL  改为 BEFORE_ON_PRIMARY_FAILOVER

group_replication_exit_state_action 系统变量的默认值改为 OFFLINE_MODE

group_replication_set_as_primary()  函数在选择新主成员时,将等待正在进行的DDL结束。

7 Clone plugin

克隆功能对版本的要求进一步放宽,允许在同一大版本的不同小版本之间进行克隆。换句话说,只有主要版本号和次要版本号必须匹配,而以前点版本号也必须匹配。

例如,克隆功能现在允许将 8.4.0 克隆到 8.4.14 以及将 8.0.51 克隆到 8.0.37。对于 8.0,之前的限制仍然适用于 8.0.37 之前的版本,因此不允许将 8.0.36 等克隆到 8.0.42,反之亦然。(WL#15989)

8 直方图自动更新功能

MySQL 8.4.0 支持自动更新直方图。当为给定的直方图启用此功能时,你可以通过为 ANALYZE TABLE 语句包含 AUTO UPDATE 选项来启用此功能。每当对指定的表运行 ANALYZE TABLE  时,它会被更新。

可以使用 MANUAL UPDATE 选项禁用自动更新某个表的直方图功能。如果没有指定这两个选项中的任何一个,则默认为 MANUAL UPDATE(无自动更新)。

9 Thread pool plugin 连接信息
  1. 增加 连接池相关的表  tp_connections 记录每个连接池的元数据。

  2. tp_thread_state ,tp_thread_group_state 增加了更细粒度的字段显示 连接池的状态。

10  废弃 expire_logs_days

废弃参数 expire_logs_days 并使用 binlog_expire_logs_seconds 代替。

11 过时的复制选项和变量

在 MySQL 早期版本中,一些与MySQL复制相关的选项和变量已被弃用,并且已从MySQL 8.4中移除。现在尝试使用这些选项和变量将导致服务器抛出语法错误。这些选项和变量列举如下:

--slave-rows-search-algorithms:当应用更新或删除操作寻找表行时,复制应用程序使用的算法现在始终是HASH_SCAN,INDEX_SCAN,用户不再能够配置此项。

--log_bin_use_v1_events:这允许运行MySQL 5.7及更新版本的源服务器复制到早期版本的MySQL,这些早期版本的MySQL不再被支持或维护。

--relay-log-info-file--relay-log-info-repository--master-info-file--master-info-repository:使用文件作为sql 应用线程的元数据的方式已被支持 crash-safe 的表所取代。

官方文档

  1. https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/index.html

  2. https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-nutshell.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/6126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cefsharp实现资源替换如网页背景、移除替换标签、html标识、执行javascript脚本学习笔记(含源码说明)

(一)实现测试(仅供学习参考) 1.1 目标系统页面(登录页)和登录后首页面中2处(一个替换一个移除) 1.2 实现后效果(使用cefsharp自定义浏览器实现以上功能) 1.3 登录后页面替换和移除 系统名称和一个功能菜单li (二)通过分析代码实现脚本编写 2.1 分开处理,设置了…

IDEA 2022.1版本开始,可以直接运行Markdown里的命令行

参照这种格式: shell mvn clean install注意idea支持的版本:是从 2022.1版本开始的。 ps:之前有人写过了,感觉很实用但是蛮多开发者不一定会知道的功能。 参考资料: https://www.cnblogs.com/didispace/p/16144107.h…

pygame鼠标绘制

pygame鼠标绘制 Pygame鼠标绘制效果代码 Pygame Pygame是一个开源的Python库,专为电子游戏开发而设计。它建立在SDL(Simple DirectMedia Layer)的基础上,允许开发者使用Python这种高级语言来实时开发电子游戏,而无需被…

ES数据存储与查询基本原理

Elasticsearch(ES)简介 Elasticsearch(ES)是一个分布式、可扩展、近实时的搜索和分析引擎,它基于Lucene,设计用于云计算中,处理大规模文档检索和数据分析任务,常用于实现内部搜索引…

CMake:静态库链接其他动态库或静态库(九)

1、项目结构 对于下面这样一个项目 把calc模块做成静态或者动态库把sort模块做成静态库然后再sort模块中的*.cpp调用calc模块生成的库即可(这样就制作了一个静态库引用动态或者静态库)test模块用于测试sort模块中的内容 . ├── calc │ ├── ad…

Codeforces Round 943 (Div. 3) 题解 缺F和G2

A题&#xff1a; Maximize? 题目大意&#xff1a; 给你一个整数 x&#xff0c; 要求你找出任意一个 y &#xff0c;。使得最大。 思路一&#xff1a;暴力 数据范围小&#xff0c;直接暴力。 #include <bits/stdc.h> #define int long long #define endl \n using n…

MySQL —— 库的基本操作

一、数据库的增删查改 &#xff08;1&#xff09;创建 语句&#xff1a;create database db_name;&#xff08;db_name是自定义的数据库名字&#xff09; &#xff08;2&#xff09;删除 语句&#xff1a;drop database dp_name;&#xff08;dp_name是要被删除的数据库的名字…

【智能算法】冠豪猪优化算法(CPO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年&#xff0c;M Abdel-Basset等人受到冠豪猪防御行为启发&#xff0c;提出了冠豪猪优化算法&#xff08;Crested Porcupine Optimizer, CPO&#xff09;。 2.算法原理 2.1算法思想 …

【Cpp】类和对象#构造函数 析构函数

标题&#xff1a;【Cpp】类和对象#构造函数 析构函数 水墨不写bug &#xff08;图片来源于网络&#xff09; 正文开始&#xff1a; &#xff08;一&#xff09;构造函数 构造函数是特殊的成员函数&#xff0c;需要注意的是&#xff0c;构造函数虽然名称叫构造&#xff0c;但…

区块链 | IPFS:Merkle DAG(进阶版)

&#x1f98a;原文&#xff1a;Merkle DAGs: Structuring Data for the Distributed Web &#x1f98a;写在前面&#xff1a;本文属于搬运博客&#xff0c;自己留存学习。 1 Merkle DAG 当我们在计算机上表示图时&#xff0c;必须通过提供节点和边的具体表示来编码我们的数据…

常用SQL命令

应用经常需要处理用户的数据&#xff0c;并将用户的数据保存到指定位置&#xff0c;数据库是常用的数据存储工具&#xff0c;数据库是结构化信息或数据的有序集合&#xff0c;几乎所有的关系数据库都使用 SQL 编程语言来查询、操作和定义数据&#xff0c;进行数据访问控制&…

yudao-cloud微服务系统系统模块+后台管理系统成功运行

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 系列文章目录 第一章 芋…

C语言之位操作符:<<、>>、、|、^、~,以及原码反码补码和例题详解

目录 前言 一、原码、反码、补码 二、移位操作符 三、位操作符&#xff1a;&、|、^、~ 四、经典例题分析&#xff1a; 总结 前言 本文将详细介绍C语言中左移操作符<<&#xff0c;右移操作符>>&#xff0c;按位与&&#xff0c;按位或|&#xff0c;按位异或^…

【Spring AI】09. ETL 管道

文章目录 ETL PipelineAPI 概述入门指南ETL 接口和实现DocumentReaderJsonReaderTextReaderPagePdfDocumentReaderParagraphPdfDocumentReaderTikaDocumentReader DocumentTransformerTextSplitterTokenTextSplitterContentFormatTransformerKeywordMetadataEnricherSummaryMet…

【通信中间件】Fdbus HelloWorld实例

Fdbus实例教程 Fdbus简介 Fdbus 全称 Fast Distributed Bus&#xff08;高速分布式总线&#xff09;&#xff0c;提供IPCRPC功能。适用于多种OS&#xff1a; LinuxQNXAnroidOSWindow Fdbus本质是Socket&#xff0c;IPC基于Unix domain socket&#xff0c;RPC基于TCP。使用G…

MathType打开的窗口太多 MathType说打开窗口太多无法复制怎么解决

在数学文档编辑中&#xff0c;MathType作为一款常用的数学公式编辑工具&#xff0c;使用过程中&#xff0c;我们常常会遇到一些问题&#xff0c;比如MathType打开的窗口过多导致软件运行缓慢甚至崩溃&#xff0c;以及在复制过程中出现“打开窗口太多&#xff0c;无法复制”的提…

241 基于matlab的Dijkstra算法进行路径规划

基于matlab的Dijkstra算法进行路径规划。可根据实际情况输入障碍物和起止点坐标信息&#xff1b; 输出避碰最短路径&#xff1b; 能够利用切线图算法对障碍物区域进行环境建模&#xff0c;设置障碍物的位置和区域。利用Dijkstra算法进行路径规划。程序已调通&#xff0c;可直接…

细说SVPWM原理及软件实现原理,关联PWM实现

细说SVPWM原理及软件实现原理&#xff0c;关联PWM实现 文章目录 细说SVPWM原理及软件实现原理&#xff0c;关联PWM实现1. 前言2. 基础控制原理回顾2.1 FOC 原理回顾2.2 细说 SVPWM2.2.1 矢量扇区计算2.2.2 矢量作用时间计算 2.2.3 如何理解 U4 U6 2/3Udc?2.2.4 如何理解 U4m…

文件传送协议

壹、文件传输协议FTP 一、FTP简介 文件传送协议FTP曾是互联网上使用最广泛的协议&#xff1b; 在互联网发展的早期阶段&#xff0c;用FTP传送文件约占整个互联网的通信量的三分之一&#xff1b;知道1995年&#xff0c;www的通信量才首次超过FTP。 FTP实现的是通过网络实现异…

GaussDB数据库事务管理

一、引言 事务管理是数据库系统中至关重要的一部分&#xff0c;它确保了数据库的一致性和可靠性。在GaussDB数据库中&#xff0c;事务管理不仅遵循传统的ACID特性&#xff0c;还提供了一些高级功能。本文将深入探讨GaussDB数据库事务管理的各个方面。 二、事务的基本概念 2.1…