
PostgreSQL V10 分区表特性
管理分区方便 数据插入效率高
发布日期:2021-05-08 12:28:23
浏览次数:18
分类:精选文章
本文共 1999 字,大约阅读时间需要 6 分钟。
PostgreSQL 10 分区表的理解与使用
环境
- 系统平台:N/A
- 版本:10.3
文档用途
分区表特性
PostgreSQL V10 将分区表作为一个重要的新特性引入,相较于之前的版本(通过“继承表+约束+规则或触发器”实现分区),PG10的分区具有显著优势。
PG10 分区优势
实质特性
PG10的分区表基于内置继承表实现,分区实质上仍为普通表结构,主要区别在于分区逻辑和管理方式。
分区类型
目前PG10支持范围分区和列表分区,哈希分区尚未实现。
范围分区
创建主表语法
CREATE TABLE 表名 ( [{ 列名称 数据_类型 } [, ... ] ] )PARTITION BY RANGE ( [{ 列名称 } [, ... ] ] );
创建分区语法
CREATE TABLE 表名 PARTITION OF 主表 FOR VALUESFROM { 表达式 [, ...] } | MINVALUE [, ...]TO { 表达式 [, ...] } | MAXVALUE [, ...] [ TABLESPACE 表空间名 ];
参数说明
FROM ... TO
表示分区的值范围,MINVALUE
表示无限小值,MAXVALUE
表示无限大值。FROM
后的值包含在分区,TO
后的值不包含。
示例
postgres=# create table test(n int) partition by range(n);postgres=# create table test_1 partition of test for values from (MINVALUE) to (10);postgres=# create table test_2 partition of test for values from (10) to (100);postgres=# create table test_3 partition of test for values from (100) to (1000);postgres=# create table test_4 partition of test for values from (1000) to (10000);
列表分区
创建主表语法
CREATE TABLE 表名 ( [{ 列名称 数据_类型 } [, ... ] ] )PARTITION BY LIST ( [{ 列名称 } ] );
创建分区语法
CREATE TABLE 表名 PARTITION OF 主表 FOR VALUES IN ( { 表达式 [, ...] } );
示例
postgres=# CREATE TABLE sales (product_id int, saleroom int, province text) PARTITION BY LIST(province);postgres=# CREATE TABLE sales_east PARTITION OF sales FOR VALUES IN ('山东', '江苏', '上海');postgres=# CREATE TABLE sales_west PARTITION OF sales FOR VALUES IN ('山西', '陕西', '四川');postgres=# CREATE TABLE sales_north PARTITION OF sales FOR VALUES IN ('北京', '河北', '辽宁');postgres=# CREATE TABLE sales_south PARTITION OF sales FOR VALUES IN ('广东', '福建');
系统信息
分区信息系统表
pg_partitioned_table
记录主表信息。pg_class
中的相关字段记录分区信息。
分区函数
pg_get_partkeydef(Oid relid)
:获取分区键定义。pg_get_partition_constraintdef(Oid relid)
:获取分区约束条件。
其他操作
ATTACH 操作
-
范围分区:
ALTER TABLE 主表名 ATTACH PARTITION 表名 FOR VALUES FROM { 表达式 [, ...] } | MINVALUE [, ...]TO { 表达式 [, ...] } | MAXVALUE [, ...];
-
列表分区:
ALTER TABLE 主表名 ATTACH PARTITION 表名 FOR VALUES IN ( { 表达式 [, ...] } );
更多操作示例请参考【瀚高技术支持平台】。
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月26日 09时23分56秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
spring-boot-2.0.3之redis缓存实现,不是你想的那样哦!
2019-03-06
httprunner学习23-加解密
2019-03-06
有道云笔记 同步到我的博客园
2019-03-06
李笑来必读书籍整理
2019-03-06
http头部 Expect
2019-03-06
Hadoop(十六)之使用Combiner优化MapReduce
2019-03-06
《机器学习Python实现_10_06_集成学习_boosting_gbdt分类实现》
2019-03-06
CoreCLR源码探索(八) JIT的工作原理(详解篇)
2019-03-06
IOS开发Swift笔记16-错误处理
2019-03-07
flume使用中的一些常见错误解决办法 (地址已经使用)
2019-03-07
andriod 开发错误记录
2019-03-07
C语言编译错误列表
2019-03-07
看明白这两种情况,才敢说自己懂跨链! | 喵懂区块链24期
2019-03-07
张一鸣:创业7年,我经历的5件事
2019-03-07
《web安全入门》(四)前端开发基础Javascript
2019-03-07
python中列表 元组 字典 集合的区别
2019-03-07
python struct 官方文档
2019-03-07
Android DEX加固方案与原理
2019-03-07