文档章节

postgresql10新增加分区表PARTITION BY

p
 pg_edb
发布于 2017/08/16 15:39
字数 239
阅读 38
收藏 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
Partition Tables介绍及分区表转换

--==================== -- Partition Tables --==================== 分区表相关概念: 当表数据不断增加时,查询数据库速度就回变慢,应用程序性能就会下降,这个时候就该考虑对表进行分区...

hnairdb
11/08
0
0
oracle 对象管理 02_表

1.创建表 标准语句建表 CREATE TABLE table_name (column1 type1, column2 type2, ... ) tablespace tablespace_name; 可选数据类型: VARCHAR2(size) #变长字符串类型 CHAR(size) #定长字符......

PeakFang-BOK
10/13
0
0
Oracle 分区表的新增、修改、删除、合并。普通表转分区表方法

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

sjzmlb
2015/12/23
272
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS 安装PHP5和PHP7

安装PHP5 下载解压二进制包 [root@test-a src]# cd /usr/local/src/[root@test-a src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2[root@test-a src]# tar jxvf php-5.6......

野雪球
今天
4
0
windows上类似dnsmasq的软件Dual DHCP DNS Server

官网地址:http://dhcp-dns-server.sourceforge.net/官网定向的下载地址:https://sourceforge.net/projects/dhcp-dns-server/files/ 设置参考地址:http://blog.51cto.com/zhukeqiang/18264......

xueyuse0012
今天
3
0
LinkedHashMap源码解析

前言 HashMap中的元素时无序的,也就是说遍历HashMap的时候,顺序和放入的顺序是不一样的。 如果需要有序的Map,就可以采用LinkedHashMap. LinkedHashMap通过维护一个包含所有元素的双向链表,...

grace_233
今天
4
0
初识flask

文档 0.10.1版本 http://www.pythondoc.com/flask/index.html 1.0.2版本 https://dormousehole.readthedocs.io/en/latest/ 安装flask $ pip3 install flaskCollecting flask Downloading......

yimingkeji
昨天
6
0
Akka系统《sixteen》译

Actor是一个封装状态(state)和行为(behavior)的对象,它们只通过交换消息通信(放入收件人邮箱的邮件)。从某种意义上说,Actor是最严格的面向对象编程形式,但它更适合将他们视为人:在与Act...

woshixin
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部