MySQL8.0.24版本Release Note的一些改进点

4月20号,MySQL8.0更新了8.0.24这个版本,晚上看了下release note,整理了一些改进点,记录在这里,后续可以下载对应的版本进行测试。

一、连接管理

1、连接信息更详细

之前版本中,如果一个MySQL连接长时间没有和MySQL服务进行交互,则会收到一个MySQL Server has gone away的输出,没有具体的原因信息;

新版的MySQL Server会在连接关闭之前将连接关闭的原因写入到客户端,客户端能够看到更加详细的信息,来分析为什么连接被关闭。

2、连接错误信息里面包含port

这点主要是连接报错信息的改变,多了个端口信息:

修改前:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (10061)
修改后:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1:63333'

二、优化器层面的改进

MySQL的查询优化器现在可以通过外部连接的方法来优化包含派生表的子查询。如果子查询已经具有显式分组,则MySQL会将额外的分组添加到现有分组列表的末尾。

举例如下:

SQL:
SELECT * FROM t1 WHERE (SELECT a FROM t2 WHERE t2.a=t1.a) > 0
优化后:
SELECT t1.* FROM t1 LEFT OUTER JOIN (SELECT a, COUNT(*) AS ct FROM t2 GROUP BY a) AS derived ON t1.a = derived.a WHERE derived.a > 0.

三、功能层面的改进

1、AUTOEXTEND_SIZE最大值从64MB增加到4GB,这个选项是MySQL8.0.23引入的,定义了当表空间满的时候,innodb最大能够扩展的容量,这个参数可以在create table、alter table、create tablespace、alter tablespace等语法中使用到

2、clone_donor_timeout_after_network_failure克隆插件变量定义了克隆插件中donor允许接收者在网络故障后重新连接并重新开始克隆的时间。这个超时时间先前固定为5分钟。现在可以将超时延长至30分钟,以提供更多时间来解决网络问题。

3、客户端应用现在使用set names语法的时候,如果字符集是utf8,则会显示为utf8mb3,而不是utf8.

其实这个改变是意料之中的,毕竟utf8mb4已经慢慢替代utf8成为主流了。

4、可以在MGR运行的过程中更新allowlist 的值,将新成员添加到MGR的allowlist中无需再重新启动MGR

5、--skip-slave-start参数的作用是防止MySQL服务重启的时候自动启动复制关系,在之前的版本中,修改这个参数可以在my.cnf中修改或者命令行中添加参数的方法,这两种方法都不可避免的要登录到MySQL Server所在的host服务器上,新版MySQL中,该参数将不受此限制,可以使用持久化配置文件set persist_only语句进行设置,这样,就可以从任何一个客户端上去执行修改。而不必登录MySQL服务所在的host机器。

四、Performance Schema优化

这块儿没有做太多的研究,有兴趣的可以去官网查看。

五、bug修复

整体上,这个版本主要是修复之前版本的bug,修复了200多个bug,在MGR等高可用组件上没有特别多的更新。

说到了bug修复,这里还分享一个MySQL选择小版本选择思路:

一般情况下,查看当前MySQL版本的release note,如果发现当前版本的release note中修复的bug比较少,说明上一个版本中的bug比较少,那么选择当前版本的上一个MySQL版本或者选择当前版本,都会比较合适,优先选择当前版本,因为新版本可能会有新的特性;

如果当前版本的修复的bug很多,说明上一个版本中bug很多,不建议选择,而当前版本修复了很多bug,也不能保证稳定,所以还是建议观望或者再往前找合适的MySQL版本。

以上就是MySQL8.0.24版本Release Note的一些改进点的详细内容,更多关于MySQL Release Note的改进的资料请关注我们其它相关文章!

(0)

相关推荐

  • MySQL8.0.23免安装版配置详细教程

    第一步 下载免安装版Mysql 8.0.23 版本 点击下载MySQL8.0.23压缩包 解压文件,进入\mysql-8.0.23-winx64 文件夹中 解压完全后的目录 第二步 创建txt文件改名为my.ini (后缀修改为ini) 第三步 打开my.ini将以下内容复制进入my.ini [mysql] #设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port =3306 #设置安装目录 basedir=D:\so

  • MySQL8.0.23版本的root密码重置最优解法

    该方法编辑于2021年2月7日,自己使用的版本是8.0.23,事情的起因要从袁隆平教授说起-要从一本教科书说起,有一章节是"MySQL安全管理与权限管理",其中有提到更改root账户 ps:此方法适用于任何忘记,胡乱修改或已经糟蹋root密码的同学 本着实践主义的精神,我在自己的MySQL数据库中(当前登陆为root账户)中敲下了: update user set authentication_string=MD5("123") where user = "

  • 详解分析MySQL8.0的内存消耗

    在MySQL8.0在启动的时候,会配置各种各样的buffer和cache来提高数据库的性能.如果我们在一台服务器上配置了MySQL8.0的服务,那么这台服务器的内存会同时被操作系统.MySQL8.0服务.以及其他应用程序所共享. 生产环境中,经常会遇到内存的报警,在处理这些报警之前,你需要知道MySQL本身消耗内存最多的点在哪里,这样才能比较直观的判断出来你的MySQL服务占用的内存有多少,以及如何降低MySQL本身的内存消耗. 在MySQL配置文件中,最常用的两个内存相关的参数是innodb_

  • MySql8.023安装过程图文详解(首次安装)

    首先下载安装包Mysql官网下载地址,Mysql是开源的,所以直接下载就行了. 这是下载步骤: 然后选择: 因为个人使用原因,我选择了这个: 下载之后,解压下载得到的安装包放在自己喜欢的位置,然后设置环境变量: 我是win10系统,就是此电脑-属性-高级系统设置-环境变量: 在系统变量中双击Path,再点击新建: 把解压后的bin目录所在的路径复制进去就行了! 然后重要的一步就是:在解压后的根目录下,新建一个文本文档文件,后缀名改为.ini 如图所示: 以文本文档打开my.ini,写入以下内容

  • MySQL 5.7.18 release版安装指南(含有bin文件版本)

    与源码版本安装过程基本一致,除了编译环节,本文只谈release版,即含有bin文件版本 好处:每个用户可安装属于自己的MySQL Server 目标主机系统:CentOS 6.8 用户:saojie(没有管理员权限) 目录:/home/saojie/mysql-5.7.18 下载 Linux Generic 地址:https://dev.mysql.com/downloads/mysql/ 解压 tar zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.g

  • Java连接MySQL8.0 JDBC的详细步骤(IDEA版本)

    一.导入jar包 1.下载jar包:https://dev.mysql.com/downloads/ 2.导入 在项目文件夹下新建一个名为lib的文件夹 将下载好的jar包放入lib文件夹,然后右击lib文件夹,选择Add as Library...,然后点击ok 二.代码部分 1.加载驱动 Class.forName("com.mysql.cj.jdbc.Driver"); 2.用户信息和url String url = "jdbc:mysql://localhost:33

  • mysql8.0.23 msi安装超详细教程

    一.下载MySql,安装MySql 官网下载MySql数据库 官网下载链接地址:https://dev.mysql.com/downloads/file/?id=501541 安装MySql 2.1点击运行 2.2 选自定义安装,点击下一步 2.3把MySql Servers添加到右侧,第五步更改安装路径,头铁的人是不怕警告的,所以不要怕 2.4然后一直下一步,到这里设置下密码,记不住那你凉凉(只能再来一遍了) 2.5一直点到finish为止 二.环境配置 1.这里需要配置两个环境变量 1.1新

  • MySQL 8.0新特性 — 检查性约束的使用简介

    前言 在MySQL 8.0版本中,引入了一个非常有用的新特性 - 检查性约束,它可以提高对非法或不合理数据写入的控制能力:接下来我们就来详细了解一下. 检查性约束 创建.删除与查看 (1)可以在建表时,创建检查性约束 mysql> CREATE TABLE t1 -> ( -> CHECK (c1 <> c2), -> c1 INT CHECK (c1 > 10), -> c2 INT CONSTRAINT c2_positive CHECK (c2 >

  • 详解MySQL8.0原子DDL语法

    01 原子DDL介绍 原子DDL语句将数据字典更新.存储引擎操作和与DDL操作相关联的二进制日志写入合并到单个原子操作中.该操作要么提交,对数据字典.存储引擎和二进制日志保留适用的更改,要么回滚. 在MySQL8.0中,原子DDL操作这一特性,支持表相关操作,例如create table.drop table等,也支持非表相关操作,例如create routine.drop trigger等. 其中: 支持的表操作包含: drop.create.alter(操作对象是databases, tab

  • MySQL 8.0新特性 — 管理端口的使用简介

    前言 下面这个报错,相信大多数童鞋都遇见过:那么碰到这个问题,我们应该怎么办呢?在MySQL 5.7及之前版本,出现"too many connection"报错,超级用户root也无法登录上去,除了重启实例,没有其他更好的解决办法:不过在MySQL 8.0版本中,是对连接管理做了一些优化,下面我们就来看一下. ERROR 1040 (HY000): Too many connections 连接管理 在MySQL 8.0版本中,对连接管理这一块,是先后做了两个比较大的改变:一个是允许

随机推荐