在MySQL中创建子分区

时间:2011-10-24 09:41:38

标签: mysql partitioning

我想在MySQL表上创建分区和子分区,以优化表的性能。

对于Ex: -

Create table mytest (id int not null, mydate date)
PARTITION BY LIST (id)
SUBPARTITION BY RANGE (TO_DAYS(mydate))
(
PARTITION P01 VALUES IN (1,2,5,6,8,10)
(
SUBPARTITION S01 VALUES LESS THAN ('2011-10-23'),
SUBPARTITION S02 VALUES LESS THAN ('2011-10-16'),
SUBPARTITION S03 VALUES LESS THAN ('2011-10-09')
));

像这样我试图创建子分区但得到一个错误,说RANGE附近的语法不正确。

任何人都可以帮助我了解PARTITION BY LIST和SUBPARTITION BY RANGE是否被允许。

1 个答案:

答案 0 :(得分:4)

您无法按RANGE进行子分区。您只能按HASHKEY进行子分区。它在documentation

中说明

"In MySQL 5.1, it is possible to subpartition tables that are partitioned by RANGE or LIST. Subpartitions may use either HASH or KEY partitioning."