pg_index #目录pg_index包含关于索引的部分信息。 其他信息大部分在pg_class中。
Table 51.26. pg_index 列
| Name | 类型 | 引用 | 描述 |
|---|---|---|---|
indexrelid |
oid |
|
此索引的pg_class项的OID |
indrelid |
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事件视界,因为表可能 包含损坏的HOT链(这其中包含了他们可以看到的不兼容行) |
|
indisready |
bool |
如果为真,表示此索引当前可以用于插入。 为假表示索引必须被INSERT/UPDATE操作忽略。 |
|
indislive |
bool |
如果为假,索引正处于被删除过程中,并且必须被所有处理忽略(包括HOT安全的决策) | |
indisreplident |
bool |
如果为真,这个索引被选择为使用ALTER TABLE ... REPLICA IDENTITY USING INDEX ...的“replica identity” |
|
indkey |
int2vector |
|
这是一个包含indnatts值的数组,用于指示该索引为哪些表列建立索引。 例如,1 3的值表示第一个和第三个表列组成索引键。 此数组中的零表示相应的索引属性是表列上的表达式,而不是简单的列引用。 |
indcollation |
oidvector |
|
对于索引键中的每一列,这包含要用于该索引的排序规则的OID,如果该列不是一种可排序数据类型则为零。 |
indclass |
oidvector |
|
对于索引键中的每一列,这里包含了要使用的操作符类的OID。详见pg_opclass。 |
indoption |
int2vector |
这是一个indnatts值的数组,用于存储每列的标志位。位的意义由索引的访问方法定义。 |
|
indexprs |
pg_node_tree |
非简单列引用索引属性的表达式树(以nodeToString()形式)。对于indkey中每一个为0的项,这个列表中都有一个元素。如果所有的索引属性都是简单引用,此列为空。 |
|
indpred |
pg_node_tree |
部分索引谓词的表达式树(以nodeToString()形式)。如果不是部分索引,此列为空。 |