支持全局分区索引
功能描述
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