2025年9月25日: PostgreSQL 18 发布!
支持的版本: 当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本: devel
不支持的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

52.26. pg_index #

目录 pg_index 包含有关索引的部分信息。其余大部分在 pg_class 中。

表 52.26. pg_index

列 类型

描述

indexrelid oid (引用 pg_class.oid)

此索引的 pg_class 条目的 OID

indrelid oid (引用 pg_class.oid)

此索引所属表的 pg_class 条目的 OID

indnatts int2

索引中的总列数(重复 pg_class.relnatts);此数字包括键列和包含列。

indnkeyatts int2

索引中*键列*的数量,不包括任何*包含列*,包含列仅存储而不参与索引语义。

indisunique bool

如果为真,则这是一个唯一索引。

indnullsnotdistinct bool

此值仅用于唯一索引。如果为 false,则此唯一索引会将 NULL 值视为不同(因此索引可以在列中包含多个 NULL 值,这是 PostgreSQL 的默认行为)。如果为 true,则会将 NULL 值视为相等(因此索引只能在一个列中包含一个 NULL 值)。

indisprimary bool

如果为真,则此索引代表表的主键(当此值为真时,indisunique 应始终为真)。

indisexclusion bool

如果为真,则此索引支持排除约束。

indimmediate bool

如果为真,则唯一性检查会在插入时立即强制执行(如果 indisunique 不为真,则此项无效)。

indisclustered bool

如果为真,则表最后是根据此索引聚类的。

indisvalid bool

如果为真,则索引当前对查询有效。False 表示索引可能不完整:它仍然需要由 INSERT/UPDATE 操作进行修改,但不能安全地用于查询。如果它是唯一的,则唯一性属性也不能保证为真。

indcheckxmin bool

如果为真,则查询不应使用索引,直到此 pg_index 行的 xmin 低于其 TransactionXmin 事件视界,因为该表可能包含具有不兼容行的损坏 HOT 链,而这些行是可被查询看到的。

indisready bool

如果为真,则索引当前准备好接受插入。False 表示 INSERT/UPDATE 操作应忽略此索引。

indislive bool

如果为 false,则索引正在被删除,并且应被忽略(包括 HOT 安全性决策)。

indisreplident bool

如果为真,则使用 ALTER TABLE ... REPLICA IDENTITY USING INDEX ... 将此索引选为“副本身份”。

indkey int2vector (引用 pg_attribute.attnum)

这是一个 indnatts 值的数组,表示此索引索引了哪些表列。例如,值 1 3 表示第一个和第三个表列构成索引条目。键列排在非键(包含)列之前。此数组中的零表示相应的索引属性是基于表列的表达式,而不是简单的列引用。

indcollation oidvector (引用 pg_collation.oid)

对于索引键中的每一列(indnkeyatts 值),此字段包含所使用的排序规则 OID,如果该列不是可排序数据类型,则为零。

indclass oidvector (引用 pg_opclass.oid)

对于索引键中的每一列(indnkeyatts 值),此字段包含所使用的操作符类 OID。有关详细信息,请参阅 pg_opclass

indoption int2vector

这是一个 indnkeyatts 值的数组,用于存储每列的标志位。标志位的含义由索引的访问方法定义。

indexprs pg_node_tree

非简单列引用的索引属性的表达式树(采用 nodeToString() 表示法)。这是一个列表,对于 indkey 中的每个零条目都有一个元素。如果所有索引属性都是简单引用,则为 Null。

indpred pg_node_tree

部分索引谓词的表达式树(采用 nodeToString() 表示法)。如果不是部分索引,则为 Null。


提交更正

如果您在文档中发现任何不正确、不符合您对特定功能的经验或需要进一步澄清的内容,请使用 此表格 报告文档问题。