数据库表分区的优点有很多,也有很多文章有所介绍,本文就不赘述了
本文主要是提供数据库分表的操作步骤(也供自己将来需要时使用)

1.创建主表

通过指定PARTITION BY子句把measurement表创建为分区表,可选方法有:RANGELIST 点击查看二者的区别,此处以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分区操作相关推荐

  1. PostgreSQL 12 beta 1 发布;中国已有 11 家航空公司向波音索赔

    (给技术最前线加星标,每天看技术热点) 转自:开源中国.solidot.cnBeta.腾讯科技.快科技等 [技术资讯] 0.PostgreSQL 12 beta 1 发布,新特性预览 PostgreS ...

  2. 拥抱开源,聆听不同的声音——2017 PostgreSQL大象汇暨第八届PostgreSQL中国技术大会行记...

    活动介绍: 2017年10月21日,PostgreSQL 2017中国技术大会于深圳科兴科学园国际会议中心圆满收官. "PostgreSQL大象汇"是由PostgreSQL中国用户 ...

  3. Postgresql 日志收集

    PG安装完成后默认不会记录日志,必须修改对应的(${PGDATA}/postgresql.conf)配置才可以,这里只介绍常用的日志配置. 1.logging_collector = on/off - ...

  4. pg数据库开启远程连接_如何运行远程客户端连接postgresql数据库

    如何运行远程客户端连接 postgresql 数据库 前提条件是 2 个: 1 , pg_hba.conf 里面配置了运行远程客户机连接 pg_hba.conf 配置后需要重新加载 reload 生效 ...

  5. Postgresql:删除及查询字段中包含单引号的数据

    Postgresql:删除及查询字段中包含单引号的数据 1. 假设pg表t_info的属性att,值为固定的:'test' 2. 假设值为不固定的,'abcde' 参考 1. 假设pg表t_info的 ...

  6. postgresql Insert插入的几个报错

    postgresql Insert插入的几个报错 1. org.postgresql.util.PSQLException: 未设定参数值 2 的内容. 2. postgresql : column ...

  7. 【Postgresql】触发器某个字段更新时执行,行插入或更新执行

    [Postgresql]触发器某个字段更新时执行,行插入或更新执行 1. postgresql触发器 2. 触发器的创建及示例 1) 字段更新时,触发 2) 行插入或更新时,触发 3. 触发器的删除 ...

  8. PostgreSql、MySql字段值为空时取其他值语句

    PostgreSql: COALESCE(expr1,expr2) COALESCE函数是返回参数中的第一个非null的值,它要求参数中至少有一个是非null的,如果参数都是null会报错. sele ...

  9. Postgresql:INSERT INTO ON CONSTRAINT pk_key_id do nothing

    一.Postgresql在插入数据有主键或者唯一键冲突时,可以不做任何操作,也可以update 1. do nothing INSERT INTO t_test(id,name) VALUES (10 ...

最新文章

  1. mysql 5.5.38_数据库的硬迁移和mysql 5.5.38源码安装
  2. spring整合activeMQ遇到异常:Error creating bean with name 'connectionFactory'
  3. Androd开发之通过ComponentName和setComponent以及scheme打开外部应用 | 打开任意页面 | 打开指定页面
  4. 构建Spring Boot程序有用的文章
  5. Spring @Lazy批注用例
  6. 8个树莓派超级计算机_6 个可以尝试的树莓派教程
  7. 迪捷软件团队研发的国产替代MBSE系统建模仿真软件
  8. python编程多行输入_Python20-02_GUI编程----Text多行文本框详解
  9. python计算相关性显著性p值_基于python实现计算两组数据P值
  10. Codeforces 2 A. Winner
  11. 《Java技术》第六次作业
  12. 华为光猫虚拟服务器,高兴得要哭了!!!!研究了N天,终于把我的华为 光猫救回来了...
  13. lstm优点缺点_LSTM和易失性时间序列:优点和缺点
  14. oracle odi的使用,Oracle ODI 使用
  15. C语言标题下面程序用于输入三角形的三条边a,b,c,判断它们能否构成三角形,若能,则指出是何种三角形:等腰三角形、直角三角形、等腰直角三角形,一般三角形。若不能,则输出“不是三角形\n”
  16. zabbix5部署+Grafana大屏展示
  17. 手机端GSP地图的定位 并且在网页上显示地图的轨迹
  18. AMOLED真的比LCD屏幕更伤眼吗
  19. 如何迁移outlook邮件到另一个硬盘_移动Outlook数据文件新计算机|迁移Outlook邮件到新计算机...
  20. day01 与MySQL的第一次亲密接触基础查询条件查询

热门文章

  1. 哈尔滨工业大学深圳计算机学院院长,哈工大计算机学院院长徐晓飞教授一行到访我院...
  2. Apache Log4j 远程代码执行漏洞(CVE-2021-44228、CVE-2021-45046)
  3. 单商户商城系统功能拆解28—营销中心—砍价活动
  4. 中科大软件学院-高级软件工程学习总结
  5. 自动水位雨量一体站介绍
  6. Symbian操作系统的所有错误代码
  7. arduino EEPROM 二进制转长整形(米思奇)
  8. 网络异常流量数据集CIC-IDS-2017/2018 流量特征提取工具CICFlowMeter的使用
  9. 【C语言】编程初学者入门训练(8)
  10. 如何在公司里体现前端的价值以及提升自己的议价能力 1