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 相关文章推荐
MySQL安装后默认自带数据库的作用详解
Apr 27 MySQL
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
May 06 MySQL
mysql 8.0.24版本安装配置方法图文教程
May 12 MySQL
MySQL中的布尔值,怎么存储false或true
Jun 04 MySQL
MySQL中utf8mb4排序规则示例
Aug 02 MySQL
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
Jan 22 MySQL
深入理解mysql事务隔离级别和存储引擎
Apr 12 MySQL
MySQL时区造成时差问题
Apr 13 MySQL
mysql5.5中文乱码问题解决的有用方法
May 30 MySQL
MySQL数据库实验实现简单数据库应用系统设计
Jun 21 MySQL
mysql拆分字符串作为查询条件的示例代码
Jul 07 MySQL
MySQL中正则表达式(REGEXP)使用详解
Jul 07 MySQL
详解MySQL的半同步
详解MySQL事务的隔离级别与MVCC
Apr 22 #MySQL
MySQL之高可用集群部署及故障切换实现
教你用eclipse连接mysql数据库
MySQL 慢查询日志深入理解
MySQL root密码的重置方法
MySQL性能压力基准测试工具sysbench的使用简介
Apr 21 #MySQL
You might like
php列出一个目录下的所有文件的代码
2012/10/09 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
php动态函数调用方法
2015/05/21 PHP
php中ob函数缓冲机制深入理解
2015/08/03 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
2013/01/11 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
js简单倒计时实现代码
2016/04/30 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
详解Vue 非父子组件通信方法(非Vuex)
2017/05/24 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
Python中的魔法方法深入理解
2014/07/09 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
python五子棋游戏的设计与实现
2019/06/18 Python
Python 多进程、多线程效率对比
2020/11/19 Python
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
荷兰在线体育用品商店:Avantisport.nl
2018/07/04 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
应届毕业生应聘自荐信
2013/12/07 职场文书
小区门卫值班制度
2014/01/24 职场文书
航空学院求职信
2014/06/11 职场文书
环境保护与污染治理求职信
2014/07/16 职场文书
初三英语教学计划
2015/01/23 职场文书
自愿离婚协议书2015
2015/01/26 职场文书
2014年个人年终总结
2015/03/09 职场文书
2015年小学校长工作总结
2015/05/19 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书