PostgreSQL 11 preview - 分区表 增强 汇总

本文涉及的产品
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介:

标签

PostgreSQL , 分区表 , 增强 , 11


背景

PostgreSQL 11 分区表有非常多的增强特性。

E.1.3.1.1. Partitioning

  • Allow faster partition elimination during query processing (Amit Langote, David Rowley, Dilip Kumar)

    This speeds access to partitioned tables with many partitions.

    加速分区过滤,在分区数较多时,性能相比以前的版本有性能提升。

    《PostgreSQL 11 preview 分区过滤控制参数 - enable_partition_pruning》

  • Allow partition elimination during query execution (David Rowley, Beena Emerson)

    允许在execute阶段消除不需要的分区访问,以前只能在PLAN时消除不需要的分区访问。(使得JOIN, prepared statement也可以在exexute阶段消除不需要访问的分区)

    Previously partition elimination could only happen at planning time, meaning many joins and prepared queries could not use partition elimination.

  • Allow the creation of partitions based on hashing a key (Amul Sul)

    支持哈希分区。

    《PostgreSQL 11 preview - 分区表用法及增强 - 增加HASH分区支持 (hash, range, list)》

  • Allow updated rows to automatically move to new partitions based on the new row contents (Amit Khandekar)

    允许UPDATE分区字段值,自动将新记录写入新的分区表中。

  • Allow partitioned tables to have a default partition (Jeevan Ladhe, Beena Emerson, Ashutosh Bapat, Rahila Syed, Robert Haas)

    支持默认分区(当数据不满足所有分区规则时,放入默认分区中)

    The default partition can store rows that don't match any of the other defined partitions, and is searched accordingly.

  • Allow UNIQUE indexes on partitioned tables if the partition key guarantees uniqueness (Álvaro Herrera, Amit Langote)

    允许在分区键上创建唯一索引。

  • Allow indexes on a partitioned table to be automatically created in any child partitions (Álvaro Herrera)

    在分区表主表上创建的索引,将来添加分区时,自动创建对应定义的索引。

    如果分区是ATTACH上来的,并且已经存在索引时,可以把这个索引挂载到在分区表主表上创建的全局索引上(只要定义一致)。挂载方法类似继承关系的挂载。

    ALTER INDEX name ATTACH PARTITION index_name; (name是分区表上的本地索引名, index_name是分区表主表上的索引名.)

    The new command ALTER INDEX ATTACH PARTITION allows indexes to be attached to partitions.

    This does not behave as a global index since the contents are private to each index. WARN WHEN USING AN EXISTING INDEX?

  • Allow foreign keys on partitioned tables (Álvaro Herrera)

    分区表支持foreign key.

  • Allow INSERT, UPDATE, and COPY on partitioned tables to properly route rows to foreign partitions (Etsuro Fujita, Amit Langote)

    允许postgres_fdw的外部表,作为分区,同时允许insert,update,copy数据路由到对应外部表分区。

    This is supported by postgres_fdw foreign tables.

  • Allow FOR EACH ROW triggers on partitioned tables (Álvaro Herrera)

    允许对分区表主表创建触发器,同时这些触发器自动建立到所有分区上,并且未来新增的分区,也会自动创建对应触发器。

    Creation of a trigger on partitioned tables automatically creates triggers on all partition tables, and on newly-created ones.

    支持deferred unique约束,在事务结束时检查UNIQUE约束。

    This also allows deferred unique constraints on partitioned tables.

  • Allow equality joins between partitioned tables with identically partitioned child tables to join the child tables directly (Ashutosh Bapat)

    《PostgreSQL 11 preview - 分区表智能并行JOIN (已类似MPP架构,性能暴增)》

    This features is disabled by default but can be enabled by changing enable_partitionwise_join.

  • Perform aggregation on each partition, and then merge the results (Jeevan Chalke, Ashutosh Bapat, Robert Haas)

    《PostgreSQL 11 preview - 分区表智能并行聚合、分组计算(已类似MPP架构,性能暴增)》

    This features is disabled by default but can be enabled by changing enable_partitionwise_aggregate.

  • Allow postgres_fdw to push down aggregates to foreign tables that are partitions (Jeevan Chalke)

    支持postgres_fdw外部表作为分区,并支持将聚合下推到对应的外部数据源执行。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
SQL 监控 关系型数据库
PostgreSQL普通表转换成分区表
如何使用pg_rewrite扩展将普遍表转换成分区表
|
7月前
|
关系型数据库 数据库 PostgreSQL
|
存储 SQL JSON
大分区表高并发性能提升100倍?阿里云 RDS PostgreSQL 12 特性解读
世界上几乎最强大的开源数据库系统 PostgreSQL,于 2019 年 10 月 3 日发布了 12 版本,该版本已经在阿里云正式发布。PostgreSQL 12 在功能和性能上都有很大提升,如大分区表高并发性能提升百倍,B-tree 索引空间和性能优化,实现 SQL 2016 标准的 JSON 特性,支持多列 MCV(Most-Common-Value)统计,内联 CTE(Common table expressions)以及可插拔的表存储访问接口等。本文对部分特性进行解读。
3009 0
大分区表高并发性能提升100倍?阿里云 RDS PostgreSQL 12 特性解读
|
SQL 弹性计算 算法
PostgreSQL 普通表在线转换为分区表 - online exchange to partition table
标签 PostgreSQL , 分区表 , 在线转换 背景 非分区表,如何在线(不影响业务)转换为分区表? 方法1,pg_pathman分区插件 《PostgreSQL 9.5+ 高效分区表实现 - pg_pathman》 使用非堵塞式的迁移接口 partition_table_concurrently( relation REGCLASS,
2767 0
|
SQL 弹性计算 关系型数据库
PostgreSQL 12 preview - CTE 增强,支持用户语法层控制 materialized 优化
标签 PostgreSQL , CTE , materialized , not materialized , push down 背景 PostgreSQL with 语法,能跑非常复杂的SQL逻辑,包括递归,多语句物化计算等。 在12以前的版本中,WITH中的每一个CTE(common table express),都是直接进行物化的,也就是说外层的条件不会推到CTE(物化节点)里
1024 0
|
存储 SQL 监控
16PostgreSQL 本地分区表的用法和优化|学习笔记
快速学习16PostgreSQL 本地分区表的用法和优化
898 0
16PostgreSQL 本地分区表的用法和优化|学习笔记
|
SQL 算法 关系型数据库
PostgreSQL 普通表在线转换为分区表 - online exchange to partition table
PostgreSQL 普通表在线转换为分区表 - online exchange to partition table
2810 0
|
弹性计算 关系型数据库 数据库连接
PostgreSQL 12 preview - Move max_wal_senders out of max_connections for connection slot handling
标签 PostgreSQL , max_wal_senders , max_connections , sorry, too many clients already 背景 如果你需要使用PG的流复制,上游节点的max_wal_senders参数,用来限制这个节点同时最多可以有多少个wal sender进程。 包括逻辑复制、物理复制、pg_basebackup备份等,只要是使用stre
378 0
|
弹性计算 安全 关系型数据库
PostgreSQL 12 preview - 可靠性提升 - data_sync_retry 消除os层write back failed status不可靠的问题
标签 PostgreSQL , data_sync_retry , write back , retry , failed status 背景 有些OS系统,对fsync的二次调用不敏感,因为OS层可能有自己的CACHE,如果使用了buffer write,并且出现write back failed的情况,有些OS可能在下次fsync时并不能正确的反馈fsync的可靠性与否。(因为这个B
575 0
|
SQL 弹性计算 Oracle
PostgreSQL native partition 分区表性能优化之 - 动态SQL+服务端绑定变量
标签 PostgreSQL , 分区表 , native partition , 性能 , pg_pathman , plpgsql , 动态SQL , 服务端绑定变量 , prepare , execute 背景 目前PG的native partition分区性能不佳,一种解决方法是使用pg_pathman插件,另一种方法是业务上直接插分区,还有一种方法是使用UDF函数接口(函数内部使
1444 0

相关产品

  • 云原生数据库 PolarDB
  • 云数据库 RDS PostgreSQL 版