VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

支持全局分区索引

功能描述

Vastbase支持创建全局分区索引。分区索引可以分为本地索引(local index)和全局索引(global index),建立分区索引可以分散数据库的I/O压力。就像分区表一样,分区索引提高了可管理性、可用性、性能和可伸缩性。它们既可以独立分区(全局索引),也可以自动链接到表的分区(本地索引)。

注意事项

无。

语法格式

CREATE [ UNIQUE ] INDEX [ [schema_name.] index_name ] ON table_name [ USING method ]
( {{ column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS LAST ] }[, ...] )
[GLOBAL];

详细语法请参考CREATE INDEX

参数说明

  • UNIQUE

    指定 UNIQUE为唯一值索引。

  • schema_name

    模式名称。

  • index_name

    自定义的索引名称(可由模式名修饰)。

  • table_name

    创建索引所基于的表的名称。

  • USING method

    指定创建索引的方法。

  • column_name

    表中需要创建索引的列的名称(字段名)。如果索引方式支持多字段索引,可以声明多个字段。全局索引最多可以声明31个字段,其他索引最多可以声明32个字段。

  • expression

    创建一个基于该表的一个或多个字段的表达式索引,通常必须写在圆括弧中。如果表达式有函数调用的形式,圆括弧可以省略。表达式索引可用于获取对基本数据的某种变形的快速访问。比如,一个在upper(col)上的函数索引将允许WHERE upper(col) = 'JIM'子句使用索引。在创建表达式索引时,如果表达式中包含IS NULL子句,则这种索引是无效的。此时,建议用户尝试创建一个部分索引。

  • COLLATE collation

    COLLATE子句指定列的排序规则(该列必须是可排列的数据类型)。如果没有指定,则使用默认的排序规则。排序规则可以使用select * from pg_collation;命令从pg_collation系统表中查询,默认的排序规则为查询结果中以default开始的行。

  • opclass

    操作符类的名称。对于索引的每一列可以指定一个操作符类,操作符类标识了索引那一列的使用的操作符。例如一个B-tree索引在一个四字节整数上可以使用int4_ops;这个操作符类包括四字节整数的比较函数。实际上对于列上的数据类型默认的操作符类是足够用的。操作符类主要用于一些有多种排序的数据。例如,用户想按照绝对值或者实数部分排序一个复数。能通过定义两个操作符类然后当建立索引时选择合适的类。

  • ASC|DESC

    创建索引时指定按照升序或者降序进行排序,默认升序。

    • ASC:升序。
    • DESC:降序。
  • GLOBAL

    指定创建的索引为全局索引。

  • NULLS LAST

    指定空值在排序中排在非空值之后,未指定DESC排序时,本选项为默认的。

参数详细内容请参考CREATE INDEX参数说明

示例

1、创建一个测试分区表。

create table t_part_1(
id int,
col int
)
partition by range (id)
(
partition p1 values less than (10),
partition p2 values less than (20),
partition p3 values less than (30),
partition p4 values less than (maxvalue)
);

2、创建全局分区索引。

create index idx_tp_1 on t_part_1(id) global;

当结果返回如下,则表示全局索引创建成功:

CREATE INDEX