在MySQL 8.0中,MySQL Server实际提供分区支持,而是由表存储引擎自己或本机分区处理程序提供。在MySQL 8.0中,只有Innodb.
存储引擎提供本机分区处理程序。这意味着无法使用任何其他存储引擎创建分区表。
mysql群集NDB.
存储引擎还提供本机划分支持,但目前尚未在MySQL 8.0中支持。
alter table ...优化分区
使用使用的分区表无法正常工作Innodb.
。用更改表...重建分区
和ALTER TABLE ...分析分区
而不是此类表格。有关更多信息,请参阅第13.1.9.1节“Alter Table Partition操作”。
用户定义的分区和NDB存储引擎(NDB集群)。划分钥匙
(包括线键
)是支持的唯一分区类型NDB.
存储引擎。在NDB群集中的正常情况下不可能使用除[的任何分区类型)创建NDB群集表。线性
]钥匙
,并试图这样做失败。
例外(不适合生产):可以通过设置来覆盖这种限制新的
NDB群集SQL节点上的系统变量上
。如果您选择执行此操作,则应意识到表使用除此之外的分区类型[线性]键
生产不受支持。在这种情况下,您可以创建和使用具有除此之外的分区类型的表钥匙
或者线键
,但你完全这样做了你自己的风险。
可以为其定义的最大分区数NDB.
表取决于群集中的数据节点和节点组的数量,使用中的NDB群集软件的版本以及其他因素。看NDB和用户定义的分区, 想要查询更多的信息。
每个分区中可以存储的最大固定大小数据量NDB.
表是128 TB。以前,这是16 GB。
创建表
和改变表
导致用户划分的语句NDB.
表不符合以下两个要求中的任何一种或两种要求,并且失败错误:
表必须具有显式主键。
表的分区表达式中列出的所有列必须是主键的一部分。
例外。如果是用户划分的NDB.
表是使用空列列表创建的(即,使用按键分区()
或者按线性键分区()
),然后不需要显式主键。
升级分区表。执行升级时,由划分的表钥匙
必须倾倒并重新加载。使用除此之外的存储引擎进行分区表Innodb.
无法从MySQL 5.7或更早版本升级到MySQL 8.0或更高版本;您必须从这些表中删除划分更改表...删除分区
或将它们转换为Innodb.
使用ALTER TABLE ...... ENGINE = INNODB
在升级之前。
有关转换的信息myisam.
表到Innodb.
, 看第15.6.1.5节“将来自Myisam的表转换为InnoDB”。