pg_index

pg_index

pg_index系统目录表包含部分关于索引的信息。剩下的信息主要在pg_class表中。

表 1. pg_catalog.pg_index
类型 参考 描述
indexrelid oid pg_class.oid 该索引的pg_class项的OID。
indrelid oid pg_class.oid 该索引所对应的表的pg_class项的OID。
indnatts int2   索引中的列数(与其 pg_class.relnatts重复)。
indisunique boolean   如果为真,则这是一个唯一索引。
indisprimary boolean   如果为真,则这个索引表示表的主键(此属性为真时indisunique总是为真)。
indisclustered boolean   如果为真,表最后一次是通过CLUSTER命令在此索引上聚簇。
indisvalid boolean   如果为真,则该索引目前对查询有效。如果为假,意味着该索引目前可能不完整:它仍然必须被INSERT/UPDATE操作所修改,但是它不能被安全地用于查询。
indkey int2vector pg_attribute.attnum 这是一个长度为indnatts值的数组,它指出了这个索引索引哪些表列。例如,值为1 3意味着1号、3号列组成索引键。该数组中的0表示相应的索引属性是表列上的表达式,而不是简单的列引用。
indclass oidvector pg_opclass.oid 对于索引键中的每个列,它包含要使用的操作符类OID。
indexprs text   非简单列引用的索引属性的表达式树(表示为 nodeToString()的形式)。这是一个列表,indkey中每一个为0的元素在其中都有一项。如果所有索引属性都是简单引用,则为NULL。
indpred text   用于部分索引谓词的表达式树(表示为 nodeToString()的形式),如不是部分索引则为NULL。