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


Posted in MySQL onApril 22, 2021

      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的改进的资料请关注三水点靠木其它相关文章!

MySQL 相关文章推荐
多表查询、事务、DCL
Apr 05 MySQL
解读MySQL的客户端和服务端协议
May 10 MySQL
Navicat for MySQL的使用教程详解
May 27 MySQL
mysql优化之query_cache_limit参数说明
Jul 01 MySQL
mysql5.7的安装及Navicate长久免费使用的实现过程
Nov 17 MySQL
教你使用VS Code的MySQL扩展管理数据库的方法
Jan 22 MySQL
解决MySQL添加新用户-ERROR 1045 (28000)的问题
Mar 03 MySQL
将MySQL的表数据全量导入clichhouse库中
Mar 21 MySQL
Mysql 一主多从的部署
May 20 MySQL
MySQL事务的ACID特性以及并发问题方案
Jul 15 MySQL
MySQL中dd::columns表结构转table过程及应用详解
Sep 23 MySQL
详解MySQL的半同步
详解MySQL事务的隔离级别与MVCC
Apr 22 #MySQL
MySQL之高可用集群部署及故障切换实现
教你用eclipse连接mysql数据库
MySQL 慢查询日志深入理解
MySQL root密码的重置方法
MySQL性能压力基准测试工具sysbench的使用简介
Apr 21 #MySQL
You might like
PHP实现图片简单上传
2006/10/09 PHP
php字符串截取问题
2006/11/28 PHP
php 动态添加记录
2009/03/10 PHP
c#中的实现php中的preg_replace
2009/12/21 PHP
PHP重定向的3种方式
2013/03/07 PHP
PHP禁止个别IP访问网站
2013/10/30 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
2014/02/28 Javascript
jQuery获取选中内容及设置元素属性的方法
2014/07/09 Javascript
node.js中的fs.createReadStream方法使用说明
2014/12/17 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
jQuery 更改checkbox的状态,无效的解决方法
2016/07/22 Javascript
深入理解Node.js 事件循环和回调函数
2016/11/02 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
详解Vue组件之间的数据通信实例
2017/06/17 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
jQuery插件simplePagination的使用方法示例
2020/04/28 jQuery
python django 实现验证码的功能实例代码
2017/05/18 Python
Windows下安装Scrapy
2018/10/17 Python
python图片二值化提高识别率代码实例
2019/08/24 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
浅谈Python 参数与变量
2020/06/20 Python
Puma印度官网:德国运动品牌
2019/10/06 全球购物
机电职业生涯规划书范文
2014/03/08 职场文书
升学宴主持词
2014/04/02 职场文书
销售经理岗位职责
2015/01/31 职场文书
副总经理岗位职责
2015/02/02 职场文书
2019年思想汇报
2019/06/20 职场文书