赞
踩
ALTER TABLE 表名
PARTITION BY RANGE(TO_DAYS(创建分区依据的字段名注作者此处使用的是创建时间字段名格式为date)) (
PARTITION 分区名 VALUES LESS THAN (TO_DAYS('此处为日期格式为yyyy-MM-dd')) ENGINE = INNODB,
PARTITION 分区名 VALUES LESS THAN (TO_DAYS('同上')) ENGINE = INNODB
);
逗号分隔可以一次性创建多个,最大时间必须大于数据中字段的最大值,否则会报错,
日期处的日期表示截止时间,例:
ALTER TABLE 表名
PARTITION BY RANGE(TO_DAYS(创建分区依据的字段名注此处使用的是创建时间)) (
PARTITION 分区名1 VALUES LESS THAN (TO_DAYS('2000-01-01')) ENGINE = INNODB,
PARTITION 分区名2 VALUES LESS THAN (TO_DAYS('2010-01-01')) ENGINE = INNODB,
PARTITION 分区名3 VALUES LESS THAN (TO_DAYS('2020-01-01')) ENGINE = INNODB
);
分区名1将存有2000-01-01之前所有数据
分区名2将存有2000-01-01至2010-01-01之前所有数据
分区名3将存有2010-01-01至2020-01-01之前所有数据
插入数据的时间不得大于等于2020-01-01因为没有对应的分区会报错
如表已经创建好了分区可以执行如下sql直接创建分区
ALTER TABLE 表名 ADD PARTITION
PARTITION 分区名 VALUES LESS THAN (TO_DAYS(2030-01-01),
PARTITION 分区名 VALUES LESS THAN MAXVALUE
注:新增分区截止时间必须大于现有分区时间的最大值
show create table 表名;
查看Create Table字段在最后面可查看
ALTER TABLE 表名 DROP PARTITION 分区名
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。