達夢數據庫的分區表管理

達夢數據庫的分區表管理

分區表是將大表的數據分成稱爲分區的許多小的子集,達夢數據庫的分區表有範圍分區、哈希分區、列表分區、間隔分區、組合分區等等多種多樣。
範圍分區:範圍分區是對數據表中的某個值的範圍進行分區,比如可以根據業務記錄的創建日期進行分區,決定將該數據存儲在哪個分區上。
哈希分區:哈希分區是根據字段的hash值進行均勻分佈,儘可能的實現各分區所散列的數據相等。
列表分區:列表分區明確指定了根據某字段的某個具體值進行分區,而不是像範圍分區那樣根據字段的值範圍來劃分的。
間隔分區:間隔分區是以一個區間分區表爲"起點",並在定義中增加了一個間隔規則,使數據庫知道將來如何增加分區。

1、達夢範圍分區
範圍分區:範圍分區是對數據表中的某個值的範圍進行分區,比如可以根據業務記錄的創建日期進行分區,決定將該數據存儲在哪個分區上。
create table tab_part_fw (id int, name varchar(20), c3 date) partition by range(c3) (partition p1 values less than ('2019-10-1'),partition p2 values less than ('2019-11-1'),partition p3 values less than ('2019-12-1'),partition p4 values less than (maxvalue));

insert into tab_part_fw values(1, 'a', '2019-10-1');
insert into tab_part_fw values(2, 'b','2019-11-1');
insert into tab_part_fw values(3, 'c','2019-12-1');
達夢數據庫的分區表管理

2、達夢哈希分區
哈希分區:哈希分區是根據字段的hash值進行均勻分佈,儘可能的實現各分區所散列的數據相等。
create table tab_part_hx (id int , name varchar(20))
partition by hash(id)(partition p1,partition p2,partition p3);

insert into tab_part_hx values(1, 'a');
insert into tab_part_hx values( 2, 'b');
insert into tab_part_hx values( 3, 'c');

select * from tab_part_hx partition (p3);
達夢數據庫的分區表管理

3、達夢列表分區
列表分區:列表分區明確指定了根據某字段的某個具體值進行分區,而不是像範圍分區那樣根據字段的值範圍來劃分的。
create table tab_part_lb (c1 int, c2 char(20), c3 varchar,c4 date)
partition by list (c2)(
partition p11 values('aaaa','bbbb'),
partition p12 values('cccc','dddd'),
partition p13 values('eeee','ffff'),
partition p14 values('gggg','hhhh')
);

insert into tab_part_lb values(1, 'aaaa', 'b', '2019-1-1');
select * from tab_part_lb;
達夢數據庫的分區表管理

4、達夢間隔分區
間隔分區:間隔分區是以一個區間分區表爲"起點",並在定義中增加了一個間隔規則,使數據庫知道將來如何增加分區。
create table tab_part_jg (c1 timestamp, c2 varchar(20))
partition by range(c1)
interval(numtoyminterval(1,'month'))
(partition p0 values less than(to_date('2019-01-01','yyyy-mm-dd')));

insert into tab_part_jg values ('2019-07-01','lss');
select * from tab_part_jg;
達夢數據庫的分區表管理

5、分區維護
對於分區的管理,可以增加分區、可以刪除分區、合併分區、拆分分區、交換分區、截斷分區、重命名分區、分區表遷移等等。。
比如刪除分區,刪除剛創建的tab_part_fw表的p4分區
alter table tab_part_fw drop partition p4;
達夢數據庫的分區表管理

比如合併分區
alter table tab_part_fw merge partitions p1,p2 into partition p1_2;
達夢數據庫的分區表管理

比如拆分分區
alter table tab_part_fw split partition p1_2 at('2019-10-1') into (partition p1,partition p2);
達夢數據庫的分區表管理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章