MySQL分區表的管理

來源:互聯網
上載者:User

MySQL分區表的管理

一、如何管理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 members\G;命令查看該表的建立語句時將無法看到被刪除分區的任何資訊。

         對於RANGE分區來說,如果刪除了p1分區,在插入資料時,如果日期在1970到1980區間之內,則該資料將會被分配到下一個分區,即p2,。

         對於LIST分區,如果刪除了某一分區,在插入資料時,如果資料屬於這一分區,則插入會報錯。

         如果只是刪除資料而不刪除該分區的資訊,可使用truncate命令

ALTER TABLE members TRUNCATE PARTITION p1;

2. 添加分區

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

注意:使用ADD命令來添加分區,只能在分區列表的末尾添加,具體到本例中,只能添加到1990年以後。

當然,在實際生產環境中,這樣的局限性太大,譬如我想將p0分區之前添加一個分區,區間為1960,或者將p1之間再添加一個1975的分區,這時候,用ADD將無法滿足此類需求,可使用ALTER TABLE ... REORGANIZE PARTITION命令。

譬如:

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

REORGANIZE命令其實是相當靈活的,不僅能拆分分區,還可以用來合并分區,譬如:

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

注意:

1> 不能使用REORGANIZE PARTITION命令修改表的分區類型,只能通過ALTER TABLE ... PARTITION BY ....語句,譬如:

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

2> REORGANIZE 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,REORGANIZE分區。

事實上,它只支援一種類型的“分區調整”。

ALTER TABLE clients COALESCE PARTITION 4;

該命令的作用在於將clients表的分區剪裁4個,從12個剪裁到8個。

ALTER TABLE clients ADD PARTITION PARTITIONS 6;

同樣,該命令為clients表增加了6個分區,從12個到18個。

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.