CREATE INDEX
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-树索引并且包括列director
和rating
:
CREATE UNIQUE INDEX title_idx ON films (title) INCLUDE (director, rating);
在表达式lower(title)
上创建一个索引来允许高效的大小写
无关搜索:
兼容性
CREATE INDEX
是一种 PostgreSQL的语言扩展。在 SQL 标准中
没有对于索引的规定。
另见