MySQL 8.0版本计划

MySQL 8.0开始采用快速迭代开发模式,基本上是每隔3个月就发布一个新的小版本。去年1月18日(2022.1.18)发布MySQL 8.0.28,今年1月17日发布MySQL 8.0.32,再看看其他几个版本的时间,还真是贼守时啊。

版本 发布时间 上一年版本 上一年发布时间
8.0.32 2023.1.17 8.0.28 2022.1.18
8.0.31 2022.10.11 8.0.27 2021.10.10
8.0.30 2022.7.26 8.0.26 2021.7.20
8.0.29 2022.4.26 8.0.25
2021.5.11

在这中间,出了点小意外,MySQL 8.0.29因为存在严重安全问题,刚上架没多久就被下架了,可以看下这篇文章的解读:MySQL8.0.29出现重大bug,现已下架

MySQL 8.0.32的一些变化

总的来说,8.0.32版本基本上属于修修补补状态,乏善可陈。

在这里,主要罗列我个人认为需要关注的几个要点或bug fix,想看详细变化的可以查看 MySQL 8.0.32 Release Notes, https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-32.html。

  • 当数据表名用 "$" 开头的话,引用时必须用反引号 "`",否则会有一个WARN,例如:


  1. mysql> create table $t1(id int primary key);
  2. Query OK, 0 rows affected, 1 warning (0.02 sec)
  3. mysql> show warnings;
  4. +---------+------+-------------------------------------------------------------------------------------------------------------+
  5. | Level   | Code | Message                                                                                                     |
  6. +---------+------+-------------------------------------------------------------------------------------------------------------+
  7. | Warning | 1681 | '$ as the first character of an unquoted identifier' is deprecated and will be removed in a future release. |
  8. +---------+------+-------------------------------------------------------------------------------------------------------------+
  9. mysql> table $t1;
  10. +----+
  11. | id |
  12. +----+
  13. |  1 |
  14. |  2 |
  15. +----+
  16. 2 rows in set, 1 warning (0.00 sec)
  17. mysql> show warnings;
  18. +---------+------+-------------------------------------------------------------------------------------------------------------+
  19. | Level   | Code | Message                                                                                                     |
  20. +---------+------+-------------------------------------------------------------------------------------------------------------+
  21. | Warning | 1681 | '$ as the first character of an unquoted identifier' is deprecated and will be removed in a future release. |
  22. +---------+------+-------------------------------------------------------------------------------------------------------------+
  23. mysql> table `$t1`; -- 加上反引号 "`" 就不再报告WARN
  24. +----+
  25. | id |
  26. +----+
  27. |  1 |
  28. |  2 |
  29. +----+
  30. 2 rows in set (0.00 sec)
  • 部分客户端程序采用新的压缩参数(--compression-algorithms=zstd|zlib|uncompressed)替换旧参数(--compress),新参数中可以指定不同压缩算法或不压缩。影响的客户端程序有:mysqlpump, mysqlcheck, mysql, mysqladmin, mysqlbinlog, mysqldump, mysqlimport, mysqlshow, mysqlslap, mysql_upgrade, mysqltest,而企业版备份工具mysqlbackup暂时不受影响,还采用 --compress 参数。例如:


  1. $ /usr/local/mysql-8.0.32-linux-glibc2.17-x86_64-minimal/bin/mysqldump --set-gtid-purged=OFF -S./mysql.sock --compress test > test.sql
  2. WARNING: --compress is deprecated and will be removed in a future version. Use --compression-algorithms instead.
  3. $ /usr/local/mysql-8.0.32-linux-glibc2.17-x86_64-minimal/bin/mysql --compress -S./mysql.sock
  4. WARNING: --compress is deprecated and will be removed in a future version. Use --compression-algorithms instead.
  • 新增选项 explain_format 用于设置 EXPLAIN 查看执行计划时的默认输出格式,支持 JSON, TREE, TRADITIONAL(或者写成 DEFAULT 也可以);当设置为 JSON 格式时,执行 EXPLAIN ANALYZE 则会报错:


  1. mysql> set @@explain_format = json;
  2. Query OK, 0 rows affected (0.00 sec)
  3. mysql> explain analyze select * from t1;
  4. ERROR 1235 (42000): This version of MySQL doesn't yet support 'EXPLAIN ANALYZE with JSON format'

原来的 EXPLAIN FORMAT=? 语法仍然支持,但不支持设置为 DEFAULT,只能写成 TRADITIONAL:


  1. mysql> explain format=tree select * from t1;
  2. ...
  3. mysql> explain format=json select * from t1;
  4. ...
  5. mysql> explain format=traditional select * from t1;
  6. ...
  7. mysql> explain format=default select * from t1;
  8. ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'default select * from t1' at line 1
  • 在MGR中设置 group_replication_consistency = AFTER,当某个Secondary节点因为网络不稳定时,可能会触发报错 Transaction 'GTID' does not exist on Group Replication consistency manager while receiving remote transaction prepare.。这是因为事务event在 View_change_log_event 后写入导致。在8.0.32中,修复了这个问题,将事务event先于 View_change_log_event 写入,就可以避免该问题。不过要再次强调,MGR中强烈建议不要设置为 AFTER模式,具体可以参考这篇文章:为什么MGR一致性模式不推荐AFTER

  • 当从MySQL 5.7升级到8.0时,如果某个库中有大量的表,内存可能会消耗过多内存。这是因为在升级时,一次性读取所有表并执行 CHECK TABLE .. FOR UPGRADE。在8.0.32中,调整为逐个表检查是否可升级,就可以避免这个问题了。

有些bug fix的描述信息比较少,或者指向内部bug id无法看到细节,这里就不再罗列了。

延伸阅读

  • MySQL 8.0.32 GA

  • Changes in MySQL 8.0.32, https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-32.html

  • Server System Variables - explain_format, https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_explain_format

  • EXPLAIN Statement, https://dev.mysql.com/doc/refman/8.0/en/explain.html#explain-execution-plan

Enjoy MySQL :)


《深入浅出MGR》视频课程

戳此小程序即可直达B站

https://www.bilibili.com/medialist/play/1363850082?business=space_collection&business_id=343928&desc=0


文章推荐:


想看更多技术好文,点个“在看”吧!

文章知识点与官方知识档案匹配,可进一步学习相关知识

【转帖】MySQL 8.0.32如期而至的更多相关文章

  1. 【MySQL】源码编译安装和配置MySql 5.5.32(单实例)

    [需求描述] 在CentOS环境中,通过编译源码的方式,安装并且配置“单实例”的MySQL5.5.32数据库. MySQL的安装目录为:/application/mysql-5.5.32 MySQL数 ...

  2. Tomcat 6.0.32 +Spring dbcp datasource关闭Tomcat出现严重异常

    异常如下: 信息: Pausing Coyote HTTP/ -- :: org.apache.catalina.core.StandardService stop 信息: Stopping serv ...

  3. MySQL 8.0版本连接报错:Could not create connection to database server.

    准备搭建一个Spring Boot 组合mybatis的项目,数据库采用的是MySQL 8.0.11按照以往的配置,使用插件mybatis-generator-maven-plugin生成代码时,一直 ...

  4. CentOS 7.x下安装部署MySQL 8.0实施手册

    MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 一.  Mysql8.0版本相比之前版本的一些特性 1) ...

  5. MySQL 8.0 —— CATS事务调度算法的性能提升

    原文地址:https://mysqlserverteam.com/contention-aware-transaction-scheduling-arriving-in-innodb-to-boost ...

  6. MySQL 并行复制演进及 MySQL 8.0 中基于 WriteSet 的优化

    MySQL 8.0 可以说是MySQL发展历史上里程碑式的一个版本,包括了多个重大更新,目前 Generally Available 版本已经已经发布,正式版本即将发布,在此将介绍8.0版本中引入的一 ...

  7. <亲测>用navicat连接mysql 8.0 报错2059

    ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded 2018年05月07日 15:56 ...

  8. MySQL 8.0有什么新功能

    https://mysqlserverteam.com/whats-new-in-mysql-8-0-generally-available/ 我们自豪地宣布MySQL 8.0的一般可用性. 现在下载 ...

  9. mysql 8.0 初识

    1 下载并安装mysql 8.0官网下载比较慢,这里选择163的镜像http://mirrors.163.com/mysql/Downloads/MySQL-8.0/下载版本mysql-8.0.14- ...

  10. MySQL 8.0复制性能的提升(翻译)

    What’s New With MySQL Replication in MySQL 8.0 MySQL复制从问世到现在已经经历了多个年头,它的稳定性和可靠性也在稳步的提高.这是一个不停进化的过程,由 ...

随机推荐

  1. 文心一言 VS 讯飞星火 VS chatgpt (59)-- 算法导论6.4 3题

    文心一言 VS 讯飞星火 VS chatgpt (59)-- 算法导论6.4 3题 三.对于一个按升序排列的包含 n 个元素的有序数组 A 来说,HEAPSORT 的时间复杂度是多少?如果 A 是降序 ...

  2. C# 添加OLE到PPT幻灯片

    本文介绍通过C#程序代码来添加OLE对象到PPT幻灯片的方法.这里以将Excel文档为对象插入到PPT幻灯片中的指定位置:添加时,将Excel中的单元格范围保存为图片,将图片以嵌入的方式添加到幻灯片, ...

  3. 技术实践丨手把手教你使用MQTT方式对接华为IoT平台 华为云开发者社区

    摘要:本文主要讲述使用MQTT方式对接华为云IoT平台的具体过程. 使用的方案:目标板为STM32L431BearPI(带E53扩展板); TCPIP功能由开发板的ESP8266提供:MQTT使用Pa ...

  4. 一文详解Java日志框架JUL

    摘要:JUL(Java util logging),Java原生日志框架,不需要引入第三方依赖包,使用简单方便. 本文分享自华为云社区<Java 日志框架 JUL 详解大全>,作者: 陈皮 ...

  5. 再谈BOM和DOM(2):DOM节点层次/属性/选择器/节点关系/操作详解

    DOM模型将整个文档(XML文档和HTML文档)看成一个树形结构,并用document对象表示该文档. 根据W3C DOM规范,DOM是HTML与XML的应用编程接口(API),DOM将整个页面映射为 ...

  6. Mac 播放 swf Flash文件

    Flash已不再支持,swf 文件彻底打不开了(一些教程),通过PD虚拟,安装 windows 操作系统在里在装了 flash 播放器使用了一段时间,始终不方便.于是找到了如下方法 首先安装:Adob ...

  7. mit6.s081 lab1:Unix Utilities

    1 sleep(easy) 要求:为 xv6实现 UNIX 程序睡眠; 睡眠需要暂停一段用户指定的时间.刻度是由 xv6内核定义的时间概念,即定时器芯片两次中断之间的时间.解决的程序应该在 user/ ...

  8. 【django-vue】主页前端搭建 git介绍和安装 git工作流程 git常用命令 git过滤文件 重写drf方法 跨域中间件 导出项目依赖

    目录 上节回顾 1 主页前端 Header组件 Banner组件 Footer组件 2 git介绍和安装 git和svn比较 pycharm中配置git svn,git ,github,gitee,g ...

  9. 神经网络优化篇:详解动量梯度下降法(Gradient descent with Momentum)

    动量梯度下降法 还有一种算法叫做Momentum,或者叫做动量梯度下降法,运行速度几乎总是快于标准的梯度下降算法,简而言之,基本的想法就是计算梯度的指数加权平均数,并利用该梯度更新的权重. 例如,如果 ...

  10. 极限五分钟,在宝塔中用 Docker 部署升讯威在线客服系统

    我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户.对我来说,只要能获得用户的认可,就是我最大的动力. 最近客服系统成功经受住了客户现场组织的压力测试,获得了客户的认可. 客户组 ...