postgresql会自动生成索引吗?

时间:2014-05-26 19:19:21

标签: postgresql

Postgresql中是否有自动索引或需要用户明确创建索引?如果有自动索引,我该如何查看?谢谢。

1 个答案:

答案 0 :(得分:4)

主键和唯一约束的索引将自动生成。使用CREATE INDEX制作更多索引。要查看包括索引的现有数据库结构,请使用\d table

生成索引的快速示例如下:

CREATE INDEX unique_index_name ON table (column);

您可以在多个列上创建索引:

CREATE INDEX unique_index_name ON table (column1, column2, column3);

或仅在满足条件时才存在的部分索引:

CREATE INDEX unique_index_name ON table (column) WHERE column > 0;

您可以使用它们做更多的事情,但这是针对文档(上面链接的)告诉您的。此外,如果在生产数据库上创建索引,请使用CREATE INDEX CONCURRENTLY(这将花费更长时间,但不会锁定对表的新写入)。如果您有任何其他问题,请与我们联系。


<强>更新

如果要使用纯SQL查看索引,请查看pg_catalog.pg_indexes表:

SELECT *
FROM pg_catalog.pg_indexes
WHERE schemaname='public'
AND tablename='table';