ALTER TABLE 表名 PARTITION BY RANGE (列名) ( PARTITION 分区名1 VALUES LESS THAN (分区值1), PARTITION 分区名2 VALUES LESS THAN (分区值2), ... PARTITION 分区名N VALUES LESS THAN (MAXVALUE) );
其中,PARTITION BY RANGE (列名) 表示按照该列的范围进行分区,可以是数字、日期等。VALUES LESS THAN (分区值) 表示该分区的值在分区值之前,必须有一个最大值 MAXVALUE。
例如,大家想要对一个名为 student 的有主键表,按照年龄列进行分区,年龄范围在 0 到 19、20 到 29、30 到 39、40 到 49、50 到 MAXVALUE 的五个分区,那么代码如下:
ALTER TABLE student PARTITION BY RANGE (age) ( PARTITION p1 VALUES LESS THAN (20), PARTITION p2 VALUES LESS THAN (30), PARTITION p3 VALUES LESS THAN (40), PARTITION p4 VALUES LESS THAN (50), PARTITION p5 VALUES LESS THAN (MAXVALUE) );
这样就完成了按照年龄列分区的操作,可以在查询时选择指定的分区进行查询,提高查询效率。