我想在我的 MySQL 表上创建分区和子分区,以优化表的性能。
例如:-
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 附近的语法不正确。
任何人都可以帮助我了解是否允许按列表进行分区和按范围进行分区的信息。
最佳答案
您不能按 RANGE
进行子分区。您只能通过 HASH
或 KEY
进行子分区。在 documentation 中说明:
“在 MySQL 5.1 中,可以对按 RANGE 或 LIST 分区的表进行子分区。子分区可以使用 HASH 或 KEY 分区。”
关于mysql - 在 MySQL 中创建子分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7873708/