Postgresql中是否有自动索引或需要用户明确创建索引?如果有自动索引,我该如何查看?谢谢。
答案 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';