PostgreSQL 创建分区表
PG 假如我们想像Hive那也创建动态分区是不能实现的。
那么需要我们手动通过脚本来创建分区表,创建分区表必须要创建主表和分区表。
因此我们可以根据我们需求提前用脚本把分区表生成即可,也可以用触发器来实现。
主表:定义我们的一些约束,以及分区键,实质上不存储数据
分区表:主要是用来存储数据的。所有列及约束都跟随主表
注意:如果我们指定分区表不存在会报错,因此一定要提前创建好分区表,并且要数据不能有遗漏的分区键。
列分区表
就是我们指定数据库中字段的一列作为分区字段。
1.如下创建分区表的主表 关键字【partition by list】:
create table fenqu(
id int,
date varchar
) partition by list(date)
2.创建分区表并指定主表:
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');
3.插入数据
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');
4.验证数据是否插入成功
我们插入的是主表,但是我们可以通过分表来查询。
第一种如上用分区表的形式查询。
第二种 我们通过指定查询条件为我们的分区列
范围分区表
1.创建访问分区表的主表 关键字【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');
注意:一定要他两个范围是左闭右开(包含左边,不包含右边)所以两个分区衔接一定要紧密。
3.插入数据
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');
会报错如下错误:因为左闭右开,
4.验证数据是否正确
我们使用查询分区表的形式查询:
结果正确,数据已经进入到我们指定的分区。
其实最核心的使我们分区键的选择可以根据数据量来决定颗粒度,
一般我们数据量比较大的时候我们就按照天,小时(这种可以使用列分区表)。
数据量小我们可以按照季,月,周来实现分区(可以使用范围分区表)当然当我们列中有季,月,周也可以使用列分区
赠送内容:
我们再对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 创建分区表相关推荐
- Postgresql-11 根据多字段创建分区表
1.表分区的意义 随着系统的使用,业务表的数据会变得越来越庞大,当达到一定程度时,会严重影响系统性能,将表分区,可以很好的解决这个问题.分区表的优点包括: (1)大大提高查询性能:对表分区后,查询时会 ...
- postgresql的分区表
postgresql的分区表 1.相关基本介绍: pg10.x以前只能通过继承+触发器的方式创建分区表 postgresql版本在10.x之后提供了内置分区表,只支持range和list分区,11.x ...
- SQL SERVER 性能优化四: 创建分区表
1.整体介绍 1.1 分区表概念:分区表值得是逻辑上是一个表,物理上被存储到不同的磁盘文件中. 1.2 优势:提高查询性能:提高稳定性:便于管理:对于大数据量表备份更方便. 1.3 建立分区表主要包含 ...
- 分区表--SQLServer创建分区表
分区表的定义大体上分为三个步骤: 1)定义分区函数 2)定义分区构架 3)定义分区表 4)修改分区表... ************* 以下为测试代码 ************* USE [maste ...
- postgresql创建只读账号
postgresql创建只读账号: # su - postgres $ psql # \c icinga2; # create user aa with password 'xxx'; # grant ...
- oracle创建表分区表,oracle创建分区表
这里的第一种方式创建分区表是最近更改程序时学会的,哈哈 -- 通过create table tablename as select * from tablename (指定分区) create tab ...
- 创建分区表+分区表的分类+创建散列分区表+查看散列分区表分区中的数据+创建列表分区表+查看列表分区表分区中的数据...
创建分区表 分区表的分类 范围分区:对数据表的某个值的范围进行分区,需要使用partition by range字句. 散列分区: 1通过hash算法均匀分布数据的一种分区类型. 2通过在I/O设备上 ...
- 如何使用Data Lake Analytics创建分区表
前言 Data Lake Analytics (后文简称DLA)提供了无服务化的大数据分析服务,帮助用户通过标准的SQL语句直接对存储在OSS.TableStore上的数据进行查询分析. 在关系型数据 ...
- Hive的基本操作-创建分区表
分区表 在大数据中,最常用的一种思想就是分治,我们可以把大的文件切割划分成一个个的小的文件,这样每次操作一个小的文件就会很容易了,同样的道理,在hive当中也是支持这种思想的,就是我们可以把大的数据, ...
最新文章
- HornetQ之JMS2.0 (实例讲解)
- eureka 之前的服务如何关闭_干货分享 | 服务注册中心Spring Cloud Eureka部分源码分析...
- 银联分账与银联代付_第三方分账系统到底有哪些作用?
- Clumsy网络模拟工具
- open with code 报错没有项目_Python开发:解决Ubuntu安装tesserocr报错
- python staticmethod规范_Python Staticmethod可以调用另一个本地方法吗?
- SDUT-保留整数 -
- element-plus Radio 单选框点击失效 无法切换问题
- PhotoShop CS6破解方法及文件下载
- Python入门:数据结构之字典(dict)(1)
- 三维装箱算法matlab,三维装箱遗传算法matlab程序
- 佟年计算机大赛,佟年成电竞高手,老韩带老婆打比赛,solo内网被佟年轻松攻破...
- crate部署(crateDB)
- 阿里云OSS域名配置及简单上传
- ​包载紫杉醇的tpgs还原性白蛋白纳米粒/GA-HSA 藤黄酸人血清蛋白纳米粒​
- 苹果5s参数_这次,苹果自己革了自己的命---iPhone12发布会全纪实
- SpringBoot整合Redis实现缓存、队列、广播
- 九龙证券|三元锂离子电池和磷酸铁锂离子电池的特点和优劣势详解
- 高端阅读:李开复与唐骏之争(转)
- 篮球队编程题(Java)
热门文章
- 千米与英里转化的c语言程序,C ++程序将公里/小时转换为英里/小时,反之亦然...
- 2005年创新商业模式之窄告
- 今天的日子只属于你!
- HanLP极致简繁转换详细讲解 1
- 今天腊八,请组里的人到大成Party了,很开心啊!
- 关于ios审核被拒3.2.1问题已成功过审经验总结
- Ubuntu Linux 3D桌面完全教程(转贴)
- 【论文阅读】MLGCL:Multi-Level Graph Contrastive Learning
- 测试吃鸡游戏帧数软件,高频内存吃鸡、CSGO帧数提高多少?这一测试告诉你
- Windows10 蓝屏 DRIVER_IRQL_NOT_LESS_OR_EQUAL (vfilter.sys)的可能解决方法