"EXPLAIN PARTITIONS" 在 MySQL 8
"EXPLAIN PARTITIONS" in MySQL 8
在一个我们已经有一段时间没有改动的老项目中,使用如下请求进行分区:
EXPLAIN PARTITIONS SELECT * FROM table
然后,从该请求结果的“partitions”列中检索分区列表,并从该列表中推导出要对分区采取的操作。
此项目已部署并 运行 正在使用 MySQL 5.7.xx.
的多台服务器上
现在,我们正在尝试将其部署到我们的新 AWS 服务器上,使用 运行 MySQL 8.0.21 的 RDS 实例,但无法识别“EXPLAIN PARTITIONS”请求,错误是:
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 'SELECT * FROM table' at line 1
我的问题是:
- 是否有 MySQL 页面记录了此回归?我阅读了他们所有关于 EXPLAIN 关键字的页面,但找不到任何相关信息。
- 它是否已被另一种提供完全相同结果的语法所取代?
来自Features Removed in MySQL 8.0
The EXTENDED
and PARTITIONS
keywords for the EXPLAIN
statement have been removed. These keywords are unnecessary because their effect is always enabled.
所以“新语法”就是EXPLAIN SELECT * FROM table
。
在一个我们已经有一段时间没有改动的老项目中,使用如下请求进行分区:
EXPLAIN PARTITIONS SELECT * FROM table
然后,从该请求结果的“partitions”列中检索分区列表,并从该列表中推导出要对分区采取的操作。
此项目已部署并 运行 正在使用 MySQL 5.7.xx.
的多台服务器上现在,我们正在尝试将其部署到我们的新 AWS 服务器上,使用 运行 MySQL 8.0.21 的 RDS 实例,但无法识别“EXPLAIN PARTITIONS”请求,错误是:
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 'SELECT * FROM table' at line 1
我的问题是:
- 是否有 MySQL 页面记录了此回归?我阅读了他们所有关于 EXPLAIN 关键字的页面,但找不到任何相关信息。
- 它是否已被另一种提供完全相同结果的语法所取代?
来自Features Removed in MySQL 8.0
The
EXTENDED
andPARTITIONS
keywords for theEXPLAIN
statement have been removed. These keywords are unnecessary because their effect is always enabled.
所以“新语法”就是EXPLAIN SELECT * FROM table
。