openGauss 分区表索引

01
概述

openGauss分区表支持两种索引:全局(global)索引和本地(local)索引。

分区表创建索引不支持concurrently语法,默认索引是全局索引,创建本地索引需要指定local。

创建主键约束和唯一约束必须要包含分区字段,创建本地唯一索引也必须要包含分区字段,但是创建全局唯一索引没有这个限制。

postgres=# create index concurrently on part_index_test(col2,col1,col3);ERROR: cannot create concurrent partitioned indexes

本文主要阐述添加或删除分区对索引的影响。

数据库版本:openGauss 1.1.0

02
测试

一.建表语句

范围分区中的间隔语法可以自动追加分区表,这里以间隔分区表为例:

create table part_index_test(partid varchar(32) not null,col1 varchar(2) not null,col2 date not null,col3 varchar(8) not null)partition by range(col2)interval('1 day')(partition part1 values less than ('20210331'),partition part2 values less than ('20210401'));
  • 全局索引:

    create index on part_index_test(col2,col1,col3);
  • 本地索引:

    create index on part_index_test(col2,col1,col3) local;

二.测试数据

间隔分区是以1天为单位,所以新增一天的数据,会自动增加一个以sys_p开头的自增分区:

insert into part_index_test select generate_series(1,1000),'1','20210401',generate_series(1,1000);insert into part_index_test select generate_series(1,1000),'1','20210402',generate_series(1,1000);insert into part_index_test select generate_series(1,1000),'1','20210403',generate_series(1,1000);insert into part_index_test select generate_series(1,1000),'1','20210404',generate_series(1,1000);insert into part_index_test select generate_series(1,1000),'1','20210405',generate_series(1,1000);insert into part_index_test select generate_series(1,1000),'1','20210406',generate_series(1,1000);

三.删除分区语法

  • 先通过pg_partition系统表查看分区

select relname,parttype,parentid,boundaries from pg_partition;
  • 默认删除分区:

alter table part_index_test DROP PARTITIONpartition_name;
  • update global index 方式删除分区:

alter table part_index_test DROP PARTITION partition_name update global index;

四.索引使用

explain select * from part_index_test where col2=$1 and partid=$2;

五.测试结果

-

添加分区

删除分区

备注

全局索引

生效

默认语法失效/update global index语法生效

索引失效后,需要reindex

本地索引

生效

生效

总结:

1、添加/删除分区不影响本地索引使用。

2、添加分区不影响全局索引使用,默认删除分区方式,全局索引失效,需要对全局索引重建;update global index方式删除分区,不影响全局索引使用。

03
示例

一.分区表准备

  • 创建分区表
create table part_range_lessthan_int(id serial primary key,col1 varchar(16))partition by range(id)(partition p1 values less than(1000),partition p2 values less than(2000),partition p3 values less than(3000),partition p4 values less than(maxvalue));
  • 创建全局索引

create unique index on part_range_lessthan_int(col1);
  • 初始化数据

insert into part_range_lessthan_int select generate_series(1,5000),'tuple'||generate_series(1,5000);
  • 默认删除分区SQL

select now();alter table part_range_lessthan_int drop partition p1;
  • update global index 删除分区SQL

select now();alter table part_range_lessthan_int drop partition p1 update global index;
  • 查询SQL

analyze;select now();explain select * from part_range_lessthan_int where col1='tuple2500';

二.默认删除分区语法

三.update global index 删除分区

(0)

相关推荐

  • 一起学习Python常用模块——pandas

    作者介绍 @王多鱼 百度的一名推荐算法攻城狮. 主要负责推荐的召回和排序模型的优化工作. 1 前言 Pandas 是Python的一个数据分析包,它是为了解决数据分析任务而创建的.Pandas 纳入了 ...

  • hive的insert语句列顺序问题以及新增字段遇到的坑

    讲问题之前,先简单创建一个表: CREATE TABLE IF NOT EXISTS `my.test_table`( `col1` int COMMENT "第一列", `col ...

  • openGauss索引详解

    本文主要介绍openGauss中常见的索引结构,索引相关元数据,并结合代码重点讲解B-tree索引使用过程中的重要流程,希望对大家理解openGauss中的索引有所帮助. 索引方法 B-Tree索引 ...

  • openGauss与PostgreSQL分区策略语法测试

    openGauss与PostgreSQL分区策略语法测试

  • 黄煌经方使用手册(4版)常见病索引   原版57方

    附录五 常见疾病用方经验提示 ● 01 精神神经系统疾病 抑郁症: 柴胡加龙骨牡蛎汤.小柴胡汤.大柴胡汤.四逆散.补中益气汤.半夏厚朴汤.桃核承气汤.麻黄附子细辛汤.甘麦大枣汤.酸枣仁汤.泻心汤.栀子 ...

  • ​2021年4月能源报告索引(文末附下载链接)

    2021年4月能源报告索引(文末附下载链接) 中国煤炭行业发展报告2020 中国可再生能源发展报告2020 2020国内外电力市场化改革分析报告 2020中国新能源发电分析报告 推荐研究报告,热购中 ...

  • 數位資源 | Chinese Iconographic Thesaurus 中國圖像誌索引典

    中國圖像誌索引典(CIT)旨在匯集漢學.藝術史和信息研究,建構一部中國圖像誌分類詞典. 圖像誌是一種植根於歐洲藝術史的研究方法,歷來被用來紀錄和檢索歐美藝術圖像.由於缺乏非西方藝術圖像的紀錄模型,歐洲 ...

  • 索引扫描时,对同一个叶子块访问多次的原因初探

    在观察索引扫描会按何种次序进行索引块的访问时,我发现了一种现象,即会有部分叶子块被访问两次或更多.以下是我自己对这种现象的重现,以及对产生该现象原因的初步判断.但截至目前,我并未找到有官方文档对相关内 ...

  • 诗文索引 清 吴伟业 五律

    读史杂感 明末清初·吴伟业 五言律诗 北寺谗成狱,西园贿拜官. 上书休讨贼,进爵在迎銮. 相国争开第,将军罢筑坛. 空余苏武节,流涕向长安. 读史杂感 明末清初·吴伟业 五言律诗 莫定三分计,先求五等 ...

  • 大衍索引三卷

    大衍索引三卷

  • 颜色索引(Color Index)知多少

    颜色索引(Color Index) 是一部国际性的染料和颜料及中间体品种的汇编.是由英国染色工作者学会Society of Dyers and Colourists (SDC) ,和美国纺织化学家和染 ...