当前位置:   article > 正文

postgresql 先创建唯一主键 再分区_PostgreSQL 11中的分区改进

postgresql分区属性必须是主键

76da42e4151055fe52926976df35e5fc.png

PostgreSQL中的分区系统最初是由2ndQuadrant创始人Simon Riggs在PostgreSQL 8.1中添加的。它基于继承表,并使用了一种约束排除的新技术将不相关的表排除在被查询扫描之外。虽然当时是前进了一大步,但现在使用起来既麻烦又慢,因而需要更换。

在PostgreSQL10中,由于Amit Langote的努力,它被现代风格的declarative partitioning取代。这种新技术意味着不再需要手动编写代码来将数据分配到正确的分区,并且不再需要为每个分区手动创建正确的约束:系统会自动执行这些操作。

但是,在PostgreSQL 10中,也就仅仅做了以上一点点的改善。正如Robert Haas在Warsaw’s PGConf.EU大会上发表的演讲一样,由于代码的复杂性和时间限制,在PostgreSQL 10的分区表中缺乏很多功能 。

许多人致力于在PostgreSQL 11中改善这种情况,以下是我重新统计的结果,并将之分为三个方面:

  1. 新的分区功能。

  2. 分区表上更好的DDL支持。

  3. 性能优化。

1、  新的分区功能

在PostgreSQL 10中,分区表可以采用RANGE分区或者LIST分区。这些分区是对于基本的数据库是足够的,但对于许多其它设计,就需要使用在PostgreSQL 11中添加的新的分区模式:HASH分区。许多用户需要它,而且通过Amul Sul的努力已经实现这一目标。下面是一个简单的例子:

CREATE TABLE clients (

client_id INTEGER, name TEXT

) PARTITION BY HASH (client_id);

CREATE TABLE clients_0 PARTITION OF clients

   FOR VALUES WITH (MODULUS 3, REMAINDER 0);

CREATE TABLE clients_1 PARTITION OF clients

   FOR VALUES WITH (MODULUS 3, REMAINDER 1);

CREATE TABLE clients_2 P

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/407139
推荐阅读
相关标签
  

闽ICP备14008679号