程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL分區表的管理~1

MySQL分區表的管理~1

編輯:MySQL綜合教程

MySQL分區表的管理~1


一、如何管理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. 下一頁:
Copyright © 程式師世界 All Rights Reserved