MySQL 升级:MySQL Server 变更详解 (8.0.32 ~ 8.0.33)
MySQL Server 的持续更新为数据库管理员和开发者带来了一系列的改进、新特性和安全性增强。
2023 年上半年,MySQL Server 共发布了两个版本:
- MySQL 8.0.32 (2023-01-17)
- MySQL 8.0.33 (2023-04-18)
本文将详细探讨 MySQL 8.0.32 和 8.0.33,这两个版本的关键变更,帮助用户了解这些更新对现有系统可能产生的影响,并为升级做好准备。
重要变更
-
在 8.0.32 中,系统变量
max_join_size
的行为得到了修正,现在它直接限制基础表中的最大行访问次数,而不是之前的估计成本。
如果估算需要从基础表中读取更多行,将引发错误。这一变更使得该变量的行为与其文档描述更加一致,有助于防止大型查询的意外执行。 -
在 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>