CREATE INDEX#

CREATE INDEX

CREATE INDEX — 定义一个新索引

大纲

CREATE [ UNIQUE ] INDEX [ [ IF NOT EXISTS ] name ] ON [ ONLY ] table_name [ USING method ]

描述

CREATE INDEX在指定关系的指定列上构建 一个索引,该关系可以是一个表或者一个物化视图。索引主要被用来提升 数据库性能(不过不当的使用会导致性能变差)。

OushuDB6.0目前支持 B-树索引。

参数

UNIQUE

导致系统在索引被创建时(如果数据已经存在)或者加入数据时 检查重复值。会导致重复项的数据插入或者更新尝试将会产生一 个错误。

当唯一索引被应用在分区边上时会有额外的限制,请参考CREATE TABLE

IF NOT EXISTS

如果一个同名关系已经存在则不要抛出错误。这种情况下会发出一个提示。 注意着并不保证现有的索引与将要创建的索引有任何相似。当 IF NOT EXISTS被指定时,需要指定索引名。

``name``

要创建的索引名称。这里不能包括模式名,因为索引总是被创建在其基表所在 的模式中。如果索引名称被省略,PostgreSQL将基于基 表名称和被索引列名称选择一个合适的名称。

``table_name``

要被索引的表的名称(可以被模式限定)。

``method``

要使用的索引方法的名称: btree 默认方法是btree

``column_name``

一个表列的名称。

示例

在表films中的列title上创建一个 B-树索引:

CREATE UNIQUE INDEX title_idx ON films (title);

要在表films的列title上创建一个唯一的B-树索引并且包括列directorrating

CREATE UNIQUE INDEX title_idx ON films (title) INCLUDE (director, rating);

在表达式lower(title)上创建一个索引来允许高效的大小写 无关搜索:

兼容性

CREATE INDEX是一种 PostgreSQL的语言扩展。在 SQL 标准中 没有对于索引的规定。