达梦数据库的分区表管理

达梦数据库的分区表管理

分区表是将大表的数据分成称为分区的许多小的子集,达梦数据库的分区表有范围分区、哈希分区、列表分区、间隔分区、组合分区等等多种多样。
范围分区:范围分区是对数据表中的某个值的范围进行分区,比如可以根据业务记录的创建日期进行分区,决定将该数据存储在哪个分区上。
哈希分区:哈希分区是根据字段的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);
达梦数据库的分区表管理

猜你喜欢

转载自blog.51cto.com/14615334/2463428