GaussDB 实验篇+openGauss的4种1级分区案例

✔ 范围分区/range分区

sql 复制代码
-- 创建表
drop table if exists zzt.par_range;
create table if not exists zzt.par_range (
    empno integer,
    ename char(10),
    job char(9),
    mgr integer(4),
    hiredate date,
    sal numeric(7,2),
    comm numeric(7,2),
    deptno integer,
    constraint pk_par_emp primary key (empno,deptno)
) tablespace ts_zzt
partition by range(deptno) --分区键必须在主键中
(
PARTITION P1 VALUES LESS THAN(11),
PARTITION P2 VALUES LESS THAN(21),
PARTITION P3 VALUES LESS THAN(31)
)
ENABLE ROW MOVEMENT;
-- 插入数据
insert into zzt.par_range select * from zzt.emp;
-- 查验
select * from zzt.par_range partition(p1);
select * from pg_catalog.pg_partition p order by p.parentid,p.relfilenode;

✔ 间隔分区/interval分区

sql 复制代码
-- 创建表
drop table if exists zzt.par_inter;
create table if not exists zzt.par_inter 
  ( id        serial, 
    time      DATE,
    others   varchar(20)
  ) 
PARTITION BY RANGE (time) 
INTERVAL('1 day')
  ( PARTITION p1 VALUES LESS THAN (TO_DATE('2021-1-2', 'YYYY-MM-DD')),
    PARTITION p2 VALUES LESS THAN (TO_DATE('2021-1-3', 'YYYY-MM-DD')),
    PARTITION p3 VALUES LESS THAN (TO_DATE('2021-1-4', 'YYYY-MM-DD')));
-- 插入数据
insert into zzt.par_inter values(1,to_date('2021-01-01 10:00:00','yyyy-mm-dd hh24:mi:ss'),'a'); --由于是less than所以分区大1天
insert into zzt.par_inter values(2,to_date('2021-01-20 20:00:00','yyyy-mm-dd hh24:mi:ss'),'a'); --测试自动分区的跨天能力
insert into zzt.par_inter values(3,to_date('2021-01-20 10:00:00','yyyy-mm-dd hh24:mi:ss'),'a'); --测试自动分区的跨天能力
insert into zzt.par_inter values(4,to_date('2022-02-02 10:00:00','yyyy-mm-dd hh24:mi:ss'),'a'); --测试自动分区的跨年能力
insert into zzt.par_inter values(5,to_date('2023-03-03 10:00:00','yyyy-mm-dd hh24:mi:ss'),'a'); --测试自动分区的跨年能力
commit;
-- 查验
select * from zzt.par_inter partition(p1);
select * from pg_catalog.pg_partition p order by p.parentid,p.relfilenode;

✔ 哈希分区/hash分区

sql 复制代码
-- 创建表
drop table if exists zzt.par_hash;
create table if not exists zzt.par_hash (
    empno integer,
    ename char(10),
    job char(9),
    mgr integer(4),
    hiredate date,
    sal numeric(7,2),
    comm numeric(7,2),
    deptno integer
) tablespace ts_zzt
partition by hash(deptno)
(
PARTITION p1,
PARTITION p2,
PARTITION p3
);
-- 插入数据
insert into zzt.par_hash select * from zzt.emp;
-- 查验
select * from zzt.par_hash partition(p1);
select * from pg_catalog.pg_partition p order by p.parentid,p.relfilenode;

✔ 列表分区/list分区

sql 复制代码
-- 创建表
drop table if exists zzt.par_list;
create table if not exists zzt.par_list (
    empno integer,
    ename char(10),
    job char(9),
    mgr integer(4),
    hiredate date,
    sal numeric(7,2),
    comm numeric(7,2),
    deptno integer
) tablespace ts_zzt
partition by list(deptno)
(
PARTITION p1 values(10),
PARTITION p2 values(20),
PARTITION p3 values(30)
);
-- 插入数据
insert into zzt.par_list select * from zzt.emp;
-- 查验
select * from zzt.par_list partition(p1);
select * from pg_catalog.pg_partition p order by p.parentid,p.relfilenode;

※ 如果您觉得文章写的还不错, 别忘了在文末给作者点个赞哦 ~

相关推荐
DarkAthena19 小时前
【GaussDB】把GaussDB开发者版本做成88MB的docker镜像
docker·gaussdb
DarkAthena3 天前
【openGauss】排查一起panweidb2.0子链接提升的coredump案例
opengauss
Gauss松鼠会4 天前
GaussDB 整体架构解析
运维·服务器·网络·数据库·sql·架构·gaussdb
Gauss松鼠会4 天前
GaussDB 中 gsql 与 DBeaver(JDBC)客户端工具查询时间不一致:原因、排查与处理
运维·服务器·数据库·sql·gaussdb·经验总结
RuoyiOffice4 天前
SpringBoot3 + openGauss:RuoYi Office 登录、流程发布与用印填报适配实战
java·数据库·spring boot·opengauss·信创
AI开源软件6 天前
SpringBoot信创项目怎么验收?从数据库迁移到交付证据
postgresql·springboot·达梦·opengauss·信创·企业管理系统
hyunbar6 天前
华为云 GaussDB(DWS) 和 PG 的谓词下推有何差异
华为云·gaussdb·dws
Gauss松鼠会11 天前
GaussDB 内存相关参数及故障诊断
运维·数据库·sql·oracle·性能优化·架构·gaussdb
赵渝强老师12 天前
【赵渝强老师】高斯数据库(openGauss)的服务器日志文件
数据库·opengauss·国产数据库·高斯数据库
Gauss松鼠会18 天前
高斯数据库(openGauss)的物理存储结构
运维·服务器·数据库·sql·opengauss·经验总结