一、如哪管理RANGE和LIST分区

以该分区表为例

CREATE TABLE members (  id INT,  fname VARCHAR(25),  lname VARCHAR(25),  dob DATE)PARTITION BY RANGE( YEAR(dob) ) (  PARTITION p0 VALUES LESS THAN (1970),  PARTITION p1 VALUES LESS THAN (1980),  PARTITION p2 VALUES LESS THAN (1990));

1. 刨除分区

ALTER TABLE members DROP PARTITION p1;

在乎:假使删掉了某分区,则该分区内的数据将全体错失,不仅仅如此,在用show
create table
membersG;命令查看该表的成立语句时将不能够看出被去除分区的别的信息。

       
 对于RANGE分区来讲,假诺去除了p1分区,在插入数据时,如若日期在一九六八到1979间距之内,则该多上校会被分配到下三个分区,即p2,。

       
 对于LIST分区,如若除去了某一分区,在插入数据时,假若数额归属这一分区,则插入会报错。

         如果只是删除数据而不删除该分区的音信,可利用truncate命令

ALTER TABLE members TRUNCATE PARTITION p1;

 

2. 增多分区

ALTER TABLE members ADD PARTITION (PARTITION p3 VALUES LESS THAN (2000));

小心:使用ADD命令来加多分区,只好在分区列表的最后增添,具体到本例中,只好增加到1989年从此以往。

理当如此,在骨子里生育条件中,那样的局限性太大,例如小编想将p0分区此前拉长多少个分区,区间为1957,恐怕将p1之间再加多三个1972的分区,那时,用ADD将无法满意此类必要,可应用ALTER
TABLE … REOENCOREGANIZE PARTITION命令。

譬如:

ALTER TABLE members REORGANIZE PARTITION p0 INTO (  PARTITION s0 VALUES LESS THAN (1960),  PARTITION s1 VALUES LESS THAN (1970));

REO索罗德GANIZE命令其实是一定灵活的,不只可以拆分分区,还能用来统一分区,比如:

ALTER TABLE members REORGANIZE PARTITION p0,p1,p2,p3 INTO (  PARTITION m0 VALUES LESS THAN (1980),  PARTITION m1 VALUES LESS THAN (2000));

注意:

1> 无法动用REO奥迪Q3GANIZE PARTITION命令改良表的分区类型,只好通过ALTER
TABLE … PARTITION BY ….语句,例如:

ALTER TABLE members  PARTITION BY HASH( YEAR(dob) )  PARTITIONS 8;

2> REOTucsonGANIZE PARTITION语法如下:

ALTER TABLE tbl_name  REORGANIZE PARTITION partition_list  INTO (partition_definitions);

partition_definitions中分区的限量必必要满含partition_list中的分区范围。

 

二、怎么样保管HASH和KEY分区

以该分区表为例

CREATE TABLE clients (  id INT,  fname VARCHAR(30),  lname VARCHAR(30),  signed DATE)PARTITION BY HASH( MONTH(signed) )PARTITIONS 12;

对此HASH分区和KEY分区,并不援助上述RANGE和LIST分区的语法,譬喻DROP,TRUNCATE,REO奥迪Q5GANIZE分区。

实际,它只支持一体系型的“分区域地质调查解”。

ALTER TABLE clients COALESCE PARTITION 4;

该命令的效应在于将clients表的分区剪裁4个,从13个剪裁到8个。

ALTER TABLE clients ADD PARTITION PARTITIONS 6;

长期以来,该命令为clients表扩展了6个分区,从10个到贰12个。

相关文章