文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

PostgreSQL如何创建分区表

2023-07-02 12:28

关注

这篇文章主要介绍“PostgreSQL如何创建分区表”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PostgreSQL如何创建分区表”文章能帮助大家解决问题。

前言

PG 假如我们想像Hive那也创建动态分区是不能实现的。

        那么需要我们手动通过脚本来创建分区表,创建分区表必须要创建主表和分区表。

因此我们可以根据我们需求提前用脚本把分区表生成即可,也可以用触发器来实现。

主表:定义我们的一些约束,以及分区键,实质上不存储数据

分区表:主要是用来存储数据的。所有列及约束都跟随主表

注意:如果我们指定分区表不存在会报错,因此一定要提前创建好分区表,并且要数据不能有遗漏的分区键。

列分区表

就是我们指定数据库中字段的一列作为分区字段。

如下创建分区表的主表 关键字【partition by list】

create table fenqu(id int,date varchar) partition by list(date)

创建分区表并指定主表:

create table fenqu_20210805 partition of fenqu for values in ('2021-08-05');create table fenqu_20210806 partition of fenqu for values in ('2021-08-06');

插入数据

insert into fenqu values(1,'2021-08-05');insert into fenqu values(2,'2021-08-05');insert into fenqu values(3,'2021-08-05');insert into fenqu values(4,'2021-08-05');insert into fenqu values(5,'2021-08-06');insert into fenqu values(6,'2021-08-06');insert into fenqu values(7,'2021-08-06');insert into fenqu values(8,'2021-08-06');

验证数据是否插入成功

我们插入的是主表,但是我们可以通过分表来查询。

第一种如上用分区表的形式查询。

PostgreSQL如何创建分区表

第二种 我们通过指定查询条件为我们的分区列

PostgreSQL如何创建分区表

范围分区表

创建访问分区表的主表 关键字【partition by range】

create table fenqu2(id int,date varchar) partition by range(date)

 2.创建分区表并指定主表

create table fenqu_20210805_10 partition of fenqu2 for values from ('2021-08-05') to ('2021-08-10');create table fenqu_20210810_15 partition of fenqu2 for values from ('2021-08-10') to ('2021-08-15');

注意:一定要他两个范围是左闭右开(包含左边,不包含右边)所以两个分区衔接一定要紧密。

插入数据

insert into fenqu2 values(1,'2021-08-05');insert into fenqu2 values(2,'2021-08-06');insert into fenqu2 values(3,'2021-08-07');insert into fenqu2 values(4,'2021-08-09');insert into fenqu2 values(5,'2021-08-10');insert into fenqu2 values(6,'2021-08-11');insert into fenqu2 values(7,'2021-08-12');insert into fenqu2 values(8,'2021-08-13');insert into fenqu2 values(9,'2021-08-14');insert into fenqu2 values(10,'2021-08-15');

会报错如下错误:因为左闭右开,

PostgreSQL如何创建分区表

 4.验证数据是否正确

我们使用查询分区表的形式查询:

PostgreSQL如何创建分区表

结果正确,数据已经进入到我们指定的分区。

其实最核心的使我们分区键的选择可以根据数据量来决定颗粒度,

一般我们数据量比较大的时候我们就按照天,小时(这种可以使用列分区表)。

数据量小我们可以按照季,月,周来实现分区(可以使用范围分区表)当然当我们列中有季,月,周也可以使用列分区

赠送内容:

我们再对PG进行更新插入时需要对标设置联合主键

ALTER TABLE log.voice_query_answer_log ADD CONSTRAINT "voice_query_answer_log_pkey" PRIMARY KEY (log_date,log_timestamp,request_id,device_sn);

关于“PostgreSQL如何创建分区表”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯