当前位置:   article > 正文

mysql给表创建分区,踩坑指南_mysql加分区sql

mysql加分区sql

给表创建分区

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
);
  • 1
  • 2
  • 3
  • 4
  • 5

逗号分隔可以一次性创建多个,最大时间必须大于数据中字段的最大值,否则会报错,
日期处的日期表示截止时间,例:

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
  • 2
  • 3
  • 4
  • 5
  • 6

分区名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
  • 1
  • 2
  • 3

注:新增分区截止时间必须大于现有分区时间的最大值

查看创建好的分区

show create table 表名;
  • 1

查看Create Table字段在最后面可查看

删除分区

ALTER TABLE 表名 DROP PARTITION 分区名
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/961043
推荐阅读
相关标签
  

闽ICP备14008679号