mysql - 在 MySQL 中创建子分区

标签 mysql partitioning

我想在我的 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 进行子分区。您只能通过 HASHKEY 进行子分区。在 documentation 中说明:

“在 MySQL 5.1 中,可以对按 RANGE 或 LIST 分区的表进行子分区。子分区可以使用 HASH 或 KEY 分区。”

关于mysql - 在 MySQL 中创建子分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7873708/

相关文章:

php - 根据 mysql 查询更改表中的字段

PHP - 连接失败 : Access denied for user 'username' @'localhost' (using password: YES)

PHP 从函数返回一个字符串供稍后使用?

c++ - 霍尔分区不起作用?

algorithm - 如何计算包含一组字符的所有可能组合的排序列表中字符串值的索引?

php - 何时用撇号将 SQL 字段括起来?

php - 返回准备好的语句中的计数总数

mysql分区不工作

hadoop - 将普通列转换为配置单元中的分区列

mysql - 为什么在日期时间列上对 MySQL 表进行分区会产生依赖于时区的错误?