47.26. pg_index
pg_index
包含关于索引的一部分信息。其它的信息大多数在pg_class
。
Table 47-26. pg_index
字段
名字 | 类型 | 引用 | 描述 |
---|---|---|---|
indexrelid |
oid |
pg_class .oid |
这个索引在pg_class 里的记录的 OID |
indrelid |
oid |
pg_class .oid |
使用这个索引的表在pg_class 里的记录的 OID |
indnatts |
int2 |
索引中的字段数目(复制的pg_class.relnatts ) |
|
indisunique |
bool |
如果为真,这是个唯一索引 | |
indisprimary |
bool |
如果为真,该索引代表该表的主键。这个字段为真的时候indisunique 应该总是为真。 |
|
indisexclusion |
bool |
如果为真,那么这个索引支持一个排除约束 | |
indimmediate |
bool |
如果为真,立即强制对插入进行唯一性检查(如果indisunique 不为真则是不相关的) |
|
indisclustered |
bool |
如果为真,那么该表最后在这个索引上建了簇。 | |
indisvalid |
bool |
如果为真,那么该索引可以用于查询。如果为假,那么该索引可能不完整: 仍然必须在INSERT /UPDATE 操作时进行更新,不过不能安全的用于查询。 如果是唯一索引,那么唯一属性也不保证为真。 |
|
indcheckxmin |
bool |
如果为真,查询必须不是使用索引,知道这个pg_index 行的xmin 低于它们的TransactionXmin 事件地平线,因为该表可能包含他们能看到的不兼容的行的断热链。 |
|
indisready |
bool |
如果为真,该索引目前已准备好插入。如果为假,那么该索引必须通过INSERT /UPDATE 操作忽略。 |
|
indislive |
bool |
如果为假,那么该索引正在被删除,并且应该被所有目的所忽略(包括热安全决策) | |
indkey |
int2vector |
pg_attribute .attnum |
这是一个包含indnatts 值的数组,这些数组值表示这个索引所建立的表字段。 比如一个值为1 3 的意思是第一个字段和第三个字段组成这个索引键字。 这个数组里的零表明对应的索引属性是在这个表字段上的一个表达式,而不是一个简单的字段引用。 |
indcollation |
oidvector |
pg_collation .oid |
对于每个在这个索引键字中的字段,这个字段包含用于这个索引的排序规则的OID。 |
indclass |
oidvector |
pg_opclass .oid |
对于索引键字里面的每个字段,这个字段都包含一个指向所使用的操作符类的 OID , 参阅pg_opclass 获取细节。 |
indoption |
int2vector |
这是indnatts 值的一个数组,存储每个字段标志位。 这个标志位的含义是通过索引的访问方式定义的。 |
|
indexprs |
pg_node_tree |
表达式树(以nodeToString() 形式表现)用于那些非简单字段引用的索引属性。 它是一个列表,在indkey 里面的每个零条目一个元素。 如果所有索引属性都是简单的引用,则为空。 |
|
indpred |
pg_node_tree |
部分索引断言的表达式树(以nodeToString() 的形式表现)。 如果不是部分索引,则是空字符串。 |