MySQL 8.0发行说明
MySQL 8.0源代码文档10bet官方网站
子分区 - 也称为复合分区- 在分区表中的每个分区的进一步分区。考虑以下创建表
陈述:
按范围内创建表TS(ID,购买日期)分区(AN_DAYS(已购买))子组分(TO_DAYS(已购买))子分区2(分区P0值小于(1990),分区P1值小于(2000),分区P2值小于maxvalue);
桌子TS.
有3.范围
分区。这些分区中的每一个 -P0.
那P1
, 和P2.
- 进一步分为2个子分组。实际上,整个表分为3 * 2 = 6
分区。但是,由于行动按范围分区
条款,这些店中的前2个只有超过1990年的记录购买
柱子。
可以划分的子组来表范围
或者列表
。子分区可以使用哈希
或者钥匙
分区。这也被称为复合分区。
笔记
哈希分开
和钥匙子分开
通常遵循相同的语法规则哈希分区
和按键分区
, 分别。这是一个例外钥匙子分开
(与按键分区
)目前尚不支持默认列,因此必须指定用于此目的的列,即使表具有显式主键。这是我们正在努力解决的知名问题;看子分组问题,有关更多信息和一个例子。
也可以显式使用子分区锁链
条款指定各个子分区的选项。例如,创建同一表的更详细方式TS.
如前面的例子所示:
按范围内创建表TS(ID,购买日期)分区(AN_DAYS(已购买))(TO_DAYS(已购买))(分区P0值小于(1990)(子组分S0,子分区S1),分区P1值小于(2000)(子分部S2,子分部S3),分区P2值小于maxValue(子分部S4,子分子S5));
这里列出了一些句法的注意事项:
每个分区必须具有相同数量的子分区。
如果您明确定义任何子组分使用
锁链
在分区表的任何分区上,您必须定义所有这些。换句话说,以下语句失败:按范围内创建表TS(ID,购买日期)分区(AN_DAYS(已购买))(TO_DAYS(已购买))(分区P0值小于(1990)(子组分S0,子分区S1),分区P1值小于(2000),分区P2值小于maxValue(子分区S2,子分部S3));
即使它使用,此声明仍然失败
子分组2
。每个
锁链
条款必须包括(至少)子分区的名称。否则,您可以为子分区设置任何所需的选项,或者允许它允许它为该选项假设其默认设置。子分区名称必须在整个表中是唯一的。例如,以下
创建表
声明有效:按范围内创建表TS(ID,购买日期)分区(AN_DAYS(已购买))(TO_DAYS(已购买))(分区P0值小于(1990)(子组分S0,子分区S1),分区P1值小于(2000)(子分部S2,子分部S3),分区P2值小于maxValue(子分部S4,子分子S5));