1. 程式人生 > >mysql ---分割槽管理與維護

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’;