PostgreSQL 11 新特性解读:分区表支持创建主键、外键、索引

2023-11-04

PostgreSQL 10 版本虽然支持创建范围分区表和列表分区表,但创建过程依然比较繁琐,需要手工定义子表索引、主键,详见 PostgreSQL10:重量级新特性-支持分区表,PostgreSQL 11 版本得到增强,在父表上创建索引、主键、外键后,子表上将自动创建,本文演示这三种场景。

值得一提的是,11 版本之前 PostgreSQL 的分区表不支持全局主键,虽然可以在父表和子表上分别定义主键,但不支持全局主键,也就是说,父表和子表、子表和子表的主键数据可以重复。

手册上的 Release 说明

Support for PRIMARY KEY, FOREIGN KEY, indexes, and triggers on partitioned tables

本文以创建哈希分区表为例进行测试。

测试环境准备

创建分区表并插入测试数据,为后续测试做准备。

创建父表

CREATE TABLE userinfo (
 userid    int4,
 username  character varying(64),
 ctime   timestamp(6) without time zone
) PARTITION BY HASH(userid);

创建子表

CREATE TABLE userinfo_p0 PARTITION OF userinfo FOR VALUES WITH(MODULUS 4, REMAINDER 0);
CREATE TABLE userinfo_p1 PARTITION OF userinfo FOR VALUES WITH(MODULUS 4, REMAINDER 1);
CREATE TABLE userinfo_p2 PARTITION OF userinfo FOR VALUES WITH(MODULUS 4, REMAINDER 2);
CREATE TABLE userinfo_p3 PARTITION OF userinfo FOR VALUES WITH(MODULUS 4, REMAINDER 3);

插入数据

给分区表插入100万数据,如下:

INSERT INTO userinfo(userid,username,ctime) SELECT n, n || '_username',clock_timestamp() FROM ge
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PostgreSQL 11 新特性解读:分区表支持创建主键、外键、索引 的相关文章

  • 时序预测

    时序预测 MATLAB实现PSO BiLSTM 粒子群优化双向长短期记忆神经网络 时间序列预测 目录 时序预测 MATLAB实现PSO BiLSTM 粒子群优化双向长短期记忆神经网络 时间序列预测 预测效果 基本介绍 模型介绍 PSO模型
  • div和section有什么区别?在加一个article标签

    1 div在html早期版本就支持了 section和article是html5提出的两个语义化标签 如果只是针对一个块内容做样式化 三者并无区别 2 作为语义化标签 section 应用的典型场景有文章的章节 标签对话框中的标签页 或者论
  • JavaSE、JavaEE和JavaME与Java的关系是什么?

    JavaSE JavaEE和JavaME都是建立在Java语言基础之上的不同分支 它们共同构成了Java平台的不同方面和应用领域 1 JavaSE Java Platform Standard Edition 是Java平台的基础 它提供了

随机推荐