更新时间:2024-05-20 GMT+08:00

对*-LIST二级分区表分割二级分区

使用ALTER TABLE SPLIT SUBPARTITION可以对*-LIST二级分区表分割二级分区。

例如,假设*-LIST二级分区表hash_list_sales的二级分区product2_channel2的定义范围为DEFAULT。可以指定分割点将其分割为两个分区,并更新Global索引。
ALTER TABLE hash_list_sales SPLIT SUBPARTITION product2_channel2 VALUES ('6', '7', '8', '9') INTO
(
    SUBPARTITION product2_channel2_p1, --第一个分区范围是('6', '7', '8', '9')
    SUBPARTITION product2_channel2_p2  --第二个分区范围是DEFAULT
) UPDATE GLOBAL INDEX;
或者,不指定分割点,将分区product2_channel2分割为多个分区,并更新Global索引。
ALTER TABLE hash_list_sales SPLIT SUBPARTITION product2_channel2 INTO
(
    SUBPARTITION product2_channel2_p1 VALUES ('6', '7', '8'),
    SUBPARTITION product2_channel2_p2 VALUES ('9', '10'),
    SUBPARTITION product2_channel2_p3 --第三个分区范围是DEFAULT
) UPDATE GLOBAL INDEX;
又或者,通过指定分区值而不是指定分区名来分割分区。
ALTER TABLE hash_list_sales SPLIT SUBPARTITION FOR (1200, '6') VALUES ('6', '7', '8', '9') INTO
(
    SUBPARTITION product2_channel2_p1, --第一个分区范围是('6', '7', '8', '9')
    SUBPARTITION product2_channel2_p2  --第二个分区范围是DEFAULT
) UPDATE GLOBAL INDEX;

若对DEFAULT分区进行分割,前面几个分区不能申明DEFAULT范围,最后一个分区会继承DEFAULT分区范围。