PostgreSQL中是否有自动索引,还是需要用户显式创建索引?如果有自动索引,如何查看它们?谢谢。
PostgreSQL中是否有自动索引,还是需要用户显式创建索引?如果有自动索引,如何查看它们?谢谢。
主键和唯一约束条件上的索引将自动生成。使用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';