45.22. pg_index

pg_index 包含关于索引的一部分信息。 其它的信息大多数在pg_class.

Table 45-22. pg_index Columns

名称类型引用描述
indexrelidoidpg_class.oid这个索引在pg_class里记录的OID
indrelidoidpg_class.oid使用这个索引表在pg_class里的记录的OID
indnattsint2 索引中的字段数(复制的pg_class.relnatts)
indisuniquebool 如果为真,这是个唯一索引
indisprimarybool  如果为真,该索引代表该表的主键。这个字段为真的时候indisunique应该总是为真。
indimmediatebool  如果该值为真,立即执行唯一性检查,在插入 ( indisunique应始终是真,当这是真时)
indisclusteredbool  如果为真,那么该表最后簇聚在这个索引。
indisvalidbool  如果为真,那么该索引对于查询当前是有效的。如果为假,那么该索引可能不完整, 仍然必须在INSERT/UPDATE操作时进行更新,不过不能安全的用于查询。 如果是唯一索引,那么唯一属性也将不为真。
indcheckxminbool  如果为真,查询不能使用索引,直到 pg_index行的 XMIN低于其 TransactionXmin 事件视界,因为表可能包含它们可以看到坏热链的不兼容的行。
indisreadybool  如果为真,该索引目前为插入做好准备。False表示通过INSERT/UPDATE操作必须忽略索引。
indkeyint2vectorpg_attribute.attnum 这是一个包含indnatts值的数组,这些数组值表示这个索引所建立的表字段。 比如一个值为1 3 的意思是第一个字段和第三个字段组成这个索引键字。 这个数组里的零表明对应的索引属性是在这个表字段上的一个表达式,而不是一个简单的字段引用。
indclassoidvectorpg_opclass.oid 对于索引键字里面的每个字段,这个字段都包含一个所使用操作符类的OID 。 参阅pg_opclass获取细节。
indoptionint2vector  这是一个存储每列标志位的indnatts值的数组 。位的含义是指由索引访问的方法。
indexprstext  表达式树(以nodeToString()形式表示)用于那些非简单字段引用的索引属性。 它是一个列表,在indkey里面的每个零条目一个元素。如果所有索引属性都是简单的引用,则为空。
indpredtext  部分索引断言的表达式树(以nodeToString()的形式表示)。如果不是部分索引,则为空。