文档章节

postgresql10新增加分区表PARTITION BY

p
 pg_edb
发布于 2017/08/16 15:39
字数 239
阅读 37
收藏 0

postgresql10以前版本的分区表是通过继承追加制约实现的,postgresql10新追加PARTITION BY可以直接定义list和range分区,检证如下:

postgres=# CREATE TABLE test(id integer,name text) PARTITION BY LIST (id);

postgres=# CREATE TABLE test_p1 PARTITION OF test FOR VALUES IN (10);

postgres=# CREATE TABLE test_p20 PARTITION OF test FOR VALUES IN (20);

postgres=# \d+ test;
                                    Table "public.test"
 Column |  Type   | Collation | Nullable | Default | Storage  | Stats target | Description
--------+---------+-----------+----------+---------+----------+--------------+-------------
 id     | integer |           |          |         | plain    |              |
 name   | text    |           |          |         | extended |              |
Partition key: LIST (id)
Partitions: test_p1 FOR VALUES IN (10),
            test_p20 FOR VALUES IN (20)
 

postgres=# \d+ test_p1;
                                  Table "public.test_p1"
 Column |  Type   | Collation | Nullable | Default | Storage  | Stats target | Description
--------+---------+-----------+----------+---------+----------+--------------+-------------
 id     | integer |           |          |         | plain    |              |
 name   | text    |           |          |         | extended |              |
Partition of: test FOR VALUES IN (10)
Partition constraint: ((id IS NOT NULL) AND (id = ANY (ARRAY[10])))

postgres=#

 

postgres=# insert into test values (10,'aaaa');
INSERT 0 1
postgres=# insert into test values (20,'bbbb');
INSERT 0 1
postgres=# insert into test values (30,'cccc');
ERROR:  no partition of relation "test" found for row
DETAIL:  Partition key of the failing row contains (id) = (30).
postgres=#

postgres=# select * from test;
 id | name
----+------
 10 | aaaa
 20 | bbbb
(2 rows)

postgres=# select * from test_p1;
 id | name
----+------
 10 | aaaa
(1 row)

postgres=# select * from test_p20;
 id | name
----+------
 20 | bbbb
(1 row)

postgres=#

 

© 著作权归作者所有

共有 人打赏支持
p
粉丝 0
博文 6
码字总数 2675
作品 0
杭州
PostgreSQL10 新特性(1): 分区表特性

概述 分区表特性是PG10新加的一个比较重要的特性,也是众多PGer翘首以盼的一个功能,相比之前利用“继承表+约束+触发器/规则”实现的分区表,PG10分区表在分区管理上和数据写入上都带来了很大...

tbing
2017/11/02
0
0
MySQL数据库分区的一些应用

http://hi.baidu.com/jxvip/item/d6084ea5094229258919d30c http://lehsyh.iteye.com/blog/732719 mysql的表分区 MySQL数据库分区的一些应用 分区的一些优点: 1)与单个磁盘或文件系统分区相...

毛朱
2014/04/10
0
0
Oracle 分区表的新增、修改、删除、合并。普通表转分区表方法

一. 分区表理论知识 Oracle提供了分区技术以支持VLDB(Very Large DataBase)。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。 Oracle的分区表可以包...

sjzmlb
2015/12/23
272
0
oracle一卡通消费数据分区表建立及自动建立分区存储过程

由于一卡通消费数据过多,不利于按时间统计计算,故采取建立分区表的方式来优化查询效率,建立过程如下 创建一卡通消费数据分区表,按时间进行分区,建立时可暂时只创建一个最早时间分区,后...

李狗蛋丶
2016/11/05
0
0
ORACLE---对象的管理

对象管理 一、表 1.堆表: 2.索引组织表: 表数据和索引数据都放到索引段中 用到表的数据量很大,将表数据和索引数据放到同一个索引段中,只需要扫描一个段就可以取出数据,减少块的读取 索引...

柳白子
2016/12/09
8
0

没有更多内容

加载失败,请刷新页面

加载更多

Kali Linux Docker 練習

docker pull kalilinux/kali-linux-docker docker run -t -i kalilinux/kali-linux-docker /bin/bash apt-get update apt-get install htop apt-get install nmap apt-get install wpscan ap......

BaiyuanLab
29分钟前
0
0
通俗大白话来理解TCP协议的三次握手和四次分手

最近在恶补计算机网络方面的知识,之前对于TCP的三次握手和四次分手也是模模糊糊,对于其中的细节更是浑然不知,最近看了很多这方面的知识,也在系统的学习计算机网络,加深自己的CS功底,就...

onedotdot
35分钟前
1
0
TiDB 在爱奇艺的应用及实践

爱奇艺,中国高品质视频娱乐服务提供者,2010 年 4 月 22 日正式上线,推崇品质、青春、时尚的品牌内涵如今已深入人心,网罗了全球广大的年轻用户群体,积极推动产品、技术、内容、营销等全方...

TiDB
39分钟前
0
0
Web系统大规模并发:电商秒杀与抢购

一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个Web系统遇到了很多的问题和挑战。如果Web系统不做针对性的优化,会轻而易举地陷入到异常...

xtof
今天
3
0
代码质量管理平台-sonarqube

在工作中,往往开发的时候会不怎么注重代码质量的人很多,存在着很多的漏洞和隐患等问题,sonarqube可以进行代码质量的审核,而且十分的残酷。。。。。接下来我们说下怎么安装 进入官网下载:...

落叶清风
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部