MySQL 8.0 对于分区表功能进行了较大的修改,在 8.0 之前,分区表在Server层实现,支持多种存储引擎,从 8.0 版本开始,分区表功能移到引擎层实现,目前MySQL 8.0 版本只有InnoDB存储引擎支持分区表。
1. mysqld不再支持以下参数:
- --partition
- --skip-partition
2. 源码编译不再支持以下选项:
- -DWITH_PARTITION_STORAGE_ENGINE
3. 插件不再支持partition:
SHOW PLUGINS 命令输出以及 INFORMATION_SCHEMA.PLUGINS 表不再显示 partition。
4. alter语句分表区变更:
ALTER TABLE ... OPTIMIZE PARTITION 语句对于InnoDB分区表不再有效,使用如下语句代替:
- ALTER TABLE ... REBUILD PARTITION
- ALTER TABLE ... ANALYZE PARTITION
5. 涉及分区表的MySQL版本升级:
目前MySQL 8.0 只有InnoDB存储引擎支持分区表,如果使用其他存储引擎创建分区表,将会报错。如果在5.7及之前的版本里使用非InnoDB的分区表,不支持直接升级到8.0版本,需要先转换成InnoDB表,或者删除分区,然后才能升级到8.0版本。