MySQL 升级:MySQL Server 变更详解 (8.0.32 ~ 8.0.33)

MySQL Server 的持续更新为数据库管理员和开发者带来了一系列的改进、新特性和安全性增强。

2023 年上半年,MySQL Server 共发布了两个版本:

  1. MySQL 8.0.32 (2023-01-17)
  2. MySQL 8.0.33 (2023-04-18)

本文将详细探讨 MySQL 8.0.32 和 8.0.33,这两个版本的关键变更,帮助用户了解这些更新对现有系统可能产生的影响,并为升级做好准备。

重要变更

  1. 在 8.0.32 中,系统变量 max_join_size 的行为得到了修正,现在它直接限制基础表中的最大行访问次数,而不是之前的估计成本。
    如果估算需要从基础表中读取更多行,将引发错误。这一变更使得该变量的行为与其文档描述更加一致,有助于防止大型查询的意外执行。

  2. 在 8.0.32 中,新增系统变量 explain_format,可选值为 TRADITIONAL (默认),JSON,TREE。

扩展

explain_format 用在显示查询执行计划,缺少 FORMAT 选项时,EXPLAIN 使用的默认输出格式。

举个栗子,系统变量 explain_format 已经预设为 json 格式,查看执行计划的输出格式。

mysql> select @@explain_format; +------------------+ | @@explain_format | +------------------+ | JSON | +------------------+ 1 row in set (0.00 sec) mysql> explain select 1G *************************** 1. row *************************** EXPLAIN: { "query_block": { "select_id": 1, "message": "No tables used" } } 1 row in set, 1 warning (0.00 sec) Note (Code 1003): /* select#1 */ select 1 AS `1` mysql>