PostgreSql分区操作
数据库表分区的优点有很多,也有很多文章有所介绍,本文就不赘述了
本文主要是提供数据库分表的操作步骤(也供自己将来需要时使用)
1.创建主表
通过指定PARTITION BY子句把measurement表创建为分区表,可选方法有:RANGE
、LIST
点击查看二者的区别,此处以RANGE
为例,以user_id
进行分区
CREATE TABLE t_user(user_id int not null,logdate date not null,peaktemp int,unitsales int
) PARTITION BY RANGE (user_id);
建立分区主表时,不需要创建主键 点击查看详细原因,不需要建立索引。
2.创建分区
- 每个分区的定义必须指定对应于父表的分区方法和分区键的边界。注意,如果指定的边界使得新分区的值会与已有分区中的值重叠,则会导致错误。向父表中插入无法映射到任何现有分区的数据将会导致错误。
- 分区以普通PostgreSQL表(或者可能是外部表)的方式创建。可以为每个分区单独指定表空间和存储参数。
- 没有必要创建表约束来描述分区的分区边界条件。相反,只要需要引用分区约束时,分区约束会自动地隐式地从分区边界说明中生成。
# user_id在1-10的数据存储在此分区
CREATE TABLE t_user_p1 PARTITION OF t_userFOR VALUES FROM ('1') TO ('100');# user_id在10-20的数据存储在此分区
CREATE TABLE t_user_p2 PARTITION OF t_userFOR VALUES FROM ('100') TO ('200');# user_id在20-30的数据存储在此分区
CREATE TABLE t_user_p3 PARTITION OF t_userFOR VALUES FROM ('200') TO ('300');
3.创建索引
在分区表的键列上创建一个索引,还有其他需要的索引(键索引并不是必需的,但是大部分场景中它都能很有帮助)。这会自动在每个分区上创建一个索引,并且后来创建或者附着的任何分区也将会包含索引
CREATE INDEX ON t_user(user_id);
4.插入数据
分区表创建完成,此时可以测试将数据插入
#插入数据,此数据将会被插入到p3分区中
INSERT INTO t_user VALUES(126, '2020-10-29', 0, 0);
#查询时,直接对主表进行查询,也可对p3查询
SELECT FROM t_user WHERE "user_id"=126;
SELECT FROM t_user_p3 WHERE "user_id"=126;
如果需要从一张已有数据的表导入数据,可以使用以下命令:
INSERT INTO t_user SELECT * FROM t_user_old;
PostgreSql分区操作相关推荐
- PostgreSQL 12 beta 1 发布;中国已有 11 家航空公司向波音索赔
(给技术最前线加星标,每天看技术热点) 转自:开源中国.solidot.cnBeta.腾讯科技.快科技等 [技术资讯] 0.PostgreSQL 12 beta 1 发布,新特性预览 PostgreS ...
- 拥抱开源,聆听不同的声音——2017 PostgreSQL大象汇暨第八届PostgreSQL中国技术大会行记...
活动介绍: 2017年10月21日,PostgreSQL 2017中国技术大会于深圳科兴科学园国际会议中心圆满收官. "PostgreSQL大象汇"是由PostgreSQL中国用户 ...
- Postgresql 日志收集
PG安装完成后默认不会记录日志,必须修改对应的(${PGDATA}/postgresql.conf)配置才可以,这里只介绍常用的日志配置. 1.logging_collector = on/off - ...
- pg数据库开启远程连接_如何运行远程客户端连接postgresql数据库
如何运行远程客户端连接 postgresql 数据库 前提条件是 2 个: 1 , pg_hba.conf 里面配置了运行远程客户机连接 pg_hba.conf 配置后需要重新加载 reload 生效 ...
- Postgresql:删除及查询字段中包含单引号的数据
Postgresql:删除及查询字段中包含单引号的数据 1. 假设pg表t_info的属性att,值为固定的:'test' 2. 假设值为不固定的,'abcde' 参考 1. 假设pg表t_info的 ...
- postgresql Insert插入的几个报错
postgresql Insert插入的几个报错 1. org.postgresql.util.PSQLException: 未设定参数值 2 的内容. 2. postgresql : column ...
- 【Postgresql】触发器某个字段更新时执行,行插入或更新执行
[Postgresql]触发器某个字段更新时执行,行插入或更新执行 1. postgresql触发器 2. 触发器的创建及示例 1) 字段更新时,触发 2) 行插入或更新时,触发 3. 触发器的删除 ...
- PostgreSql、MySql字段值为空时取其他值语句
PostgreSql: COALESCE(expr1,expr2) COALESCE函数是返回参数中的第一个非null的值,它要求参数中至少有一个是非null的,如果参数都是null会报错. sele ...
- Postgresql:INSERT INTO ON CONSTRAINT pk_key_id do nothing
一.Postgresql在插入数据有主键或者唯一键冲突时,可以不做任何操作,也可以update 1. do nothing INSERT INTO t_test(id,name) VALUES (10 ...
最新文章
- mysql 5.5.38_数据库的硬迁移和mysql 5.5.38源码安装
- spring整合activeMQ遇到异常:Error creating bean with name 'connectionFactory'
- Androd开发之通过ComponentName和setComponent以及scheme打开外部应用 | 打开任意页面 | 打开指定页面
- 构建Spring Boot程序有用的文章
- Spring @Lazy批注用例
- 8个树莓派超级计算机_6 个可以尝试的树莓派教程
- 迪捷软件团队研发的国产替代MBSE系统建模仿真软件
- python编程多行输入_Python20-02_GUI编程----Text多行文本框详解
- python计算相关性显著性p值_基于python实现计算两组数据P值
- Codeforces 2 A. Winner
- 《Java技术》第六次作业
- 华为光猫虚拟服务器,高兴得要哭了!!!!研究了N天,终于把我的华为 光猫救回来了...
- lstm优点缺点_LSTM和易失性时间序列:优点和缺点
- oracle odi的使用,Oracle ODI 使用
- C语言标题下面程序用于输入三角形的三条边a,b,c,判断它们能否构成三角形,若能,则指出是何种三角形:等腰三角形、直角三角形、等腰直角三角形,一般三角形。若不能,则输出“不是三角形\n”
- zabbix5部署+Grafana大屏展示
- 手机端GSP地图的定位 并且在网页上显示地图的轨迹
- AMOLED真的比LCD屏幕更伤眼吗
- 如何迁移outlook邮件到另一个硬盘_移动Outlook数据文件新计算机|迁移Outlook邮件到新计算机...
- day01 与MySQL的第一次亲密接触基础查询条件查询
热门文章
- 哈尔滨工业大学深圳计算机学院院长,哈工大计算机学院院长徐晓飞教授一行到访我院...
- Apache Log4j 远程代码执行漏洞(CVE-2021-44228、CVE-2021-45046)
- 单商户商城系统功能拆解28—营销中心—砍价活动
- 中科大软件学院-高级软件工程学习总结
- 自动水位雨量一体站介绍
- Symbian操作系统的所有错误代码
- arduino EEPROM 二进制转长整形(米思奇)
- 网络异常流量数据集CIC-IDS-2017/2018 流量特征提取工具CICFlowMeter的使用
- 【C语言】编程初学者入门训练(8)
- 如何在公司里体现前端的价值以及提升自己的议价能力 1