pg 10 分区表举例

-- partition table

CREATE TABLE users(

user_id    serial not null,

user_name  varchar(20),

logdate   timestamp(0) with time zone not null

) PARTITION BY RANGE (logdate);

-- table partied by month, create pk

CREATE TABLE users_y2017m01 PARTITION OF users(user_id primary key, user_name, logdate) FOR VALUES FROM (‘2017-01-01‘) TO (‘2017-02-01‘) WITH (parallel_workers = 4);

CREATE TABLE users_y2017m02 PARTITION OF users(user_id primary key, user_name, logdate) FOR VALUES FROM (‘2017-02-01‘) TO (‘2017-03-01‘) WITH (parallel_workers = 4);

CREATE TABLE users_y2017m03 PARTITION OF users(user_id primary key, user_name, logdate) FOR VALUES FROM (‘2017-03-01‘) TO (‘2017-04-01‘) WITH (parallel_workers = 4);

CREATE TABLE users_y2017m04 PARTITION OF users(user_id primary key, user_name, logdate) FOR VALUES FROM (‘2017-04-01‘) TO (‘2017-05-01‘) WITH (parallel_workers = 4);

CREATE TABLE users_y2017m05 PARTITION OF users(user_id primary key, user_name, logdate) FOR VALUES FROM (‘2017-05-01‘) TO (‘2017-06-01‘) WITH (parallel_workers = 4);

CREATE TABLE users_y2017m06 PARTITION OF users(user_id primary key, user_name, logdate) FOR VALUES FROM (‘2017-06-01‘) TO (‘2017-07-01‘) WITH (parallel_workers = 4);

CREATE TABLE users_y2017m07 PARTITION OF users(user_id primary key, user_name, logdate) FOR VALUES FROM (‘2017-07-01‘) TO (‘2017-08-01‘) WITH (parallel_workers = 4);

CREATE TABLE users_y2017m08 PARTITION OF users(user_id primary key, user_name, logdate) FOR VALUES FROM (‘2017-08-01‘) TO (‘2017-09-01‘) WITH (parallel_workers = 4);

CREATE TABLE users_y2017m09 PARTITION OF users(user_id primary key, user_name, logdate) FOR VALUES FROM (‘2017-09-01‘) TO (‘2017-10-01‘) WITH (parallel_workers = 4);

CREATE TABLE users_y2017m10 PARTITION OF users(user_id primary key, user_name, logdate) FOR VALUES FROM (‘2017-10-01‘) TO (‘2017-11-01‘) WITH (parallel_workers = 4);

CREATE TABLE users_y2017m11 PARTITION OF users(user_id primary key, user_name, logdate) FOR VALUES FROM (‘2017-11-01‘) TO (‘2017-12-01‘) WITH (parallel_workers = 4);

CREATE TABLE users_y2017m12 PARTITION OF users(user_id primary key, user_name, logdate) FOR VALUES FROM (‘2017-12-01‘) TO (‘2018-01-01‘) WITH (parallel_workers = 4);

-- index on partied table

CREATE INDEX ON users_y2017m01 (logdate);

CREATE INDEX ON users_y2017m02 (logdate);

CREATE INDEX ON users_y2017m03 (logdate);

CREATE INDEX ON users_y2017m04 (logdate);

CREATE INDEX ON users_y2017m05 (logdate);

CREATE INDEX ON users_y2017m06 (logdate);

CREATE INDEX ON users_y2017m07 (logdate);

CREATE INDEX ON users_y2017m08 (logdate);

CREATE INDEX ON users_y2017m09 (logdate);

CREATE INDEX ON users_y2017m10 (logdate);

CREATE INDEX ON users_y2017m11 (logdate);

CREATE INDEX ON users_y2017m12 (logdate);

时间: 2024-11-08 10:03:10

pg 10 分区表举例的相关文章

pg 10多级分区表(range_list)配置查询

-- define partitioned table: t_range_list create table t_range_list(id bigserial, tenant_id int, crt_time timestamp) partition by list ( mod(tenant_id, 10)); -- level 1 : list-- list ( mod(tenant_id, 10)) create table t_range_list_0 partition of t_ra

pg 10 wal 归档同步配置

一.rsync server(172.16.3.226) CentOS 7.2 X64 # yum install -y rsync # mkdir -p -m 0700 /db/wal_archive # chown -R postgres.postgres /db/wal_archive 可能存在的问题: 修改目录/db/wal_archive权限后仍报错如下: rsync: mkstemp "/.000000010000000000000001.2Z6cX4" (in archi

一些pg fdw 版本过低的一些解决方法

最近在学习,测试一些主流的基于pg fdw 的数据访问机制,发现好多对于pg 10 pg 11 ... 等基本就不支持了. 好久没有更新了,但是老版本还是比较稳定的,以下是一些自己的思考,做一个简单的记录 使用新版本pg 的postgres fdw 集成旧版本的 这种方式会形成一个数据访问的层级结构,只需要对应的数据集成处进行外部表映射的处理,postgres fdw 处可以使用 import schema 的方式 使用可选的基于python 的multicorn 模式开发新的 这种方式性能上可

用Pgpool-II实现Postgresql高可用集群

其实整个安装和配置过程比较简单,官方网站有比较好的文档,在此只是根据前几天的实际部署整理一下.(实际执行的命令都用红色标出) 服务器: 10.18.27.181    pgpool服务器 --------此服务器上需要安装pgpool和pg 10.18.27.183    data node 1  --------此服务器上安装pg 10.18.27.184    data node 2  --------此服务器上安装pg 10.18.27.185    data node 3  ------

ceph总结

ceph系统 1 流程说明 1.1 应用 1) RADOS GW是一个提供与Amazon S3和Swift兼容的RESTful API的gateway,以供相应的对象存储应用开发使用.RADOS GW提供的API抽象层次更高,但功能则不如librados强大.因此,开发者应针对自己的需求选择使用. 2) RBD则提供了一个标准的块设备接口,常用于在虚拟化的场景下为虚拟机创建volume.目前,Red Hat已经将RBD驱动集成在KVM/QEMU中,以提高虚拟机访问性能. 3) Ceph FS是一

Mysql数据库表分区深入详解

0.mysql数据库分区的由来? 1)传统不分区数据库痛点 mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看), 一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表索引的. [[email protected] test]# ls -al 总用量 1811444 drwx------ 2 mysql mysql 4096 10月 17 15:12 . drwxr-xr-

转:PostgreSQL的clog—从事务回滚速度谈起

1 概述 如果是之前学习别的数据库的人,看PostgreSQL会感觉到有句话非常奇怪:"PostgreSQL的回滚是立即完成的,不会受到事务大小本身的影响". 奇怪在哪里呢?比方我曾经遇到过一次MySQL的故障,一个开发给生产数据库导入数据,用的是Python脚本,但是,他没有注意一个事情,Python的MySQLdb默认情况下,是设置autocommit为0的,于是这哥们导数据(这里说的导入,不是普通那种load data,而是带有业务操作的SQL语句,所以需要脚本操作)脚本跑了一天

条件编译及编译预处理阶段分析与总结--笔记

C语言条件编译及编译预处理阶段分析与应用总结 (笔记) 一.C语言由源代码生成的各阶段如下: C源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件 其中 编译预处理阶段,读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理.或者说是扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器.预处理过程先于编译器对源代码进行处理. 在C 语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件.定义宏.根据条件决定编译

Windbg(2)

摘抄于:http://www.cnblogs.com/awpatp/category/228209.html Debug相关的一些小技巧 摘要: 1. 如何Debug一个进程的子进程? 答: 使用WinDBG attach到父进程, 然后输入命令".childdbg 1"(无引号). 这样子进程在刚刚被加载的时候, WinDBG就Attach上去了. 这两个进程的debug session都在一个WinDBG的窗口里, 如果想要切换当前进程, 可以使用命令"|"来查