mysql ---分区管理与维护

mysql 分区管理
为没有分区的表创建分区
alter table user_1 partition by range(age)(
partition age_1 values less than (20),
partition age_2 values less than (30)
);

2:删除某个分区的数据

alter table user_1 drop partition age_2;

3:为分区表添加一个分区

ALTER TABLE user_1 ADD PARTITION (PARTITION age_3 VALUES LESS THAN (30));

ALTER TABLE user_1 ADD PARTITION (PARTITION age_max VALUES LESS THAN maxvalue );

ALTER TABLE user_1 ADD PARTITION (PARTITION age_4 VALUES LESS THAN (40));

4.将分区表的第一个分区分为两个新的分区
ALTER TABLE user_1
REORGANIZE PARTITION age_1 INTO (
PARTITION age11 VALUES LESS THAN (15),
PARTITION age12 VALUES LESS THAN (20)
);
将分区表的第二个分区分为两个新的分区
ALTER TABLE user_1
REORGANIZE PARTITION age_3 INTO (
PARTITION age21 VALUES LESS THAN (25),
PARTITION age22 VALUES LESS THAN (30)
);

5:也可以将两个分区合并为一个分区,也可以理解为重新组织分区

ALTER TABLE user_1 REORGANIZE PARTITION age21,age22 INTO (
PARTITION age221 VALUES LESS THAN (30)
);

6,删除分区表
alter table user_1 remove partitioning;

7.查看分区表里的数据
7.1
SELECT
partition_name part,
partition_expression expr,
partition_description descr,
table_rows
FROM
INFORMATION_SCHEMA.partitions
WHERE
TABLE_SCHEMA = schema()
AND TABLE_NAME=‘user_1’;

7.2
SELECT PARTITION_NAME,PARTITION_METHOD,PARTITION_EXPRESSION,PARTITION_DESCRIPTION,TABLE_ROWS,SUBPARTITION_NAME,SUBPARTITION_METHOD,SUBPARTITION_EXPRESSION
FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA=SCHEMA() AND TABLE_NAME=‘user_1’;

猜你喜欢

转载自blog.csdn.net/qq_28752033/article/details/83993510