Advertisement

PostgreSQL 10.2 Hash分区实现

阅读量:

基于Postgresql 10.2版本,达成对Hash分区的简易实现。

在Postgresql 10版本之前,系统并未提供内置的分区功能,但可通过继承表结合触发器或规则的方式,实现基础的分区操作。随着Postgresql 10版本的发布,其源代码中已集成range和list两种分区方式。在借鉴他人实现方案的基础上,尝试在该新版本中完成Hash分区功能的开发。(持续更新中)

思路

  • 首先构建主表结构,随后建立分区表,其创建语句与list和range方式相似。
    • 在数据插入过程中,系统会依据分区键(key)确定对应的目标子分区。
    • 当前阶段仅允许采用静态方式新增分区。
    • 在执行select操作并进行约束排除时,同样采用该算法实现对分区的筛选。

建表语法

构建Hash分区语法:与list和range相似,但在创建子分区时,并未设定具体的约束值。

复制代码
 me=# create table hash_table(id int,name text) partition by hash(id);

    
 CREATE TABLE
    
 时间:7.496 ms
    
 me=# create table hash_table1 partition of hash_table;
    
 CREATE TABLE

全部评论 (0)

还没有任何评论哟~