gbase常用分区表的各种操作

分区表是根据一定规则,将数据库中的一张表分解成多个更小的容易管理的部分, 从逻辑上看,只有一张表,但底层却是由多个物理分区组成。
个人理解将一段时间的数据存于表内的分区1,下一段时间数据存于表内分区2,方便管理,相对应的会造成数据加载LOAD缓慢。
常用分区操作:
1.创建RANGE 分区
CREATE TABLE t1 (
a int(11) DEFAULT NULL,
b varchar(10) DEFAULT NULL
) REPLICATED PARTITION BY RANGE (a)
(PARTITION p0 VALUES LESS THAN (10) ,
PARTITION p1 VALUES LESS THAN (20) ,
PARTITION p2 VALUES LESS THAN (30) ,
PARTITION p3 VALUES LESS THAN (40) ) ;
2.创建RANGE分区表,带hash子分区,不指定子分区名
create table t1 (id int, dt date)
partition by range (id)
subpartition by hash (quarter(dt))
subpartitions 4
(
partition p0 values less than (1990),
partition p1 values less than (2000),
partition p2 values less than maxvalue
);
3.创建RANGE分区表,带hash子分区,指定子分区名
create table t1 (id int, dt date)
partition by range (id)
subpartition by hash (quarter(dt))
(
partition p0 values less than (1990)
(
subpartition part0_一季度,
subpartition part0_q2,
subpartition part0_q3,
subpartition part0_q4
),
partition p1 values less than (2000)
(
subpartition part1_q1,
subpartition part1_二季度,
subpartition part1_q3,
subpartition part1_q4
),
partition p2 values less than maxvalue
(
subpartition part2_q1,
subpartition part2_q2,
subpartition part2_q3,
subpartition part2_四季度
) );
4.创建RANGE分区表,带key子分区,不指定子分区名
create table t1 (id int, dt date)
partition by range (id)
subpartition by key (dt)
subpartitions 4
(
partition p0 values less than (1990),
partition p1 values less than (2000),
partition p2 values less than maxvalue
);
5.创建RANGE分区表,带key子分区,指定子分区名
create table t1 (id int, dt date)
partition by range (id)
subpartition by key (dt)
(
partition p0 values less than (1990)
(
subpartition part0_一季度,
subpartition part0_q2,
subpartition part0_q3,
subpartition part0_q4
),
partition p1 values less than (2000)
(
subpartition part1_q1,
subpartition part1_二季度,
subpartition part1_q3,
subpartition part1_q4
),
partition p2 values less than maxvalue
(
subpartition part2_q1,
subpartition part2_q2,
subpartition part2_q3,
subpartition part2_四季度
) );
6.根据分区名称查询数据
select * from t1 partition(p0,p2);
7.添加、删除分区
alter table pt add partition(partition p2 values less than(30));
alter table pt add partition (partition p3 values less than maxvalue);
删除分区:alter table pt drop partition p1;
--删除分区会直接删除分区中的数据且无法恢复,除非先备份再删除。
--建议按照每月作为分区。
评论


热门帖子
- 12023-05-09浏览数:16820
- 22019-04-26浏览数:10237
- 32020-05-11浏览数:10150
- 42023-09-25浏览数:9558
- 52023-07-04浏览数:9449