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创建分区表内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!
相关内容
-
IE脚本错误如何做Web脚本错误解决技巧
IE脚本错误如何做Web脚本错误解决技巧,,这个问题是由于这样的...
-
SQL 查看触发器
SQL 查看触发器,触发器,示例, 1、通过可视化操作来管理和查看...
-
当前页的脚本失败的解决方案_计算机错误
当前页的脚本失败的解决方案_计算机错误,,核心提示:最近打开网...
-
电脑关机整人脚本|电脑整人代码怎么关闭
电脑关机整人脚本|电脑整人代码怎么关闭,,电脑整人代码怎么关...
-
问道手电脑游脚本辅助|问道手游模拟器辅助脚本
问道手电脑游脚本辅助|问道手游模拟器辅助脚本哪个好用,,问道...
-
php脚本电脑关机|电脑关机的脚本
php脚本电脑关机|电脑关机的脚本,,1. 电脑关机的脚本推荐 Auto...
-
电脑主板会储存东西吗知乎|主板会存储数据吗
电脑主板会储存东西吗知乎|主板会存储数据吗,,主板会存储数据...
-
电脑会自动静音|电脑会自动静音脚本
电脑会自动静音|电脑会自动静音脚本,,1. 电脑会自动静音脚本关...
-
cad几何约束快捷键|cad图形界限的快捷键
cad几何约束快捷键|cad图形界限的快捷键,,1. cad图形界限的快...
-
天龙八部助手脚本设置|天龙八部助手脚本教程
天龙八部助手脚本设置|天龙八部助手脚本教程,,天龙八部助手脚...
-
shell脚本报错说 bash解释器损坏,没有该目录或文
shell脚本报错说 bash解释器损坏,没有该目录或文件的解决方案...
-
电脑接电视受不受显卡约束|电脑接电视受不受显
电脑接电视受不受显卡约束|电脑接电视受不受显卡约束影响,,电...
-
ubuntu – 以rc.local的形式执行脚本而不是root
ubuntu – 以rc.local的形式执行脚本而不是root用户,脚本,作...
-
redis命令详解与使用场景举例——Script|脚本
redis命令详解与使用场景举例——Script|脚本,脚本,命令,EVAL ...
-
在游戏中如何使用LUA脚本语言
在游戏中如何使用LUA脚本语言,你的,函数,当你希望在你的游戏开...