On this page
52.26. pg_index
目录pg_index
包含有关索引的部分信息。其余大部分位于pg_class
中。
表 52.26. pg_index
列
Name | Type | References | Description |
---|---|---|---|
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 |
如果为 true,这是唯一索引 | |
indisprimary |
bool |
如果为 true,则此索引表示表的主键(如果为indisunique ,则应始终为 true) |
|
indisexclusion |
bool |
如果为 true,则此索引支持排除约束 | |
indimmediate |
bool |
如果为 true,则在插入时立即执行唯一性检查(如果indisunique 不为真,则无关紧要) |
|
indisclustered |
bool |
如果为 true,则表最后聚集在该索引上 | |
indisvalid |
bool |
如果为 true,则索引当前对查询有效。 False 表示索引可能不完整:仍必须通过INSERT /UPDATE 操作对其进行修改,但不能安全地将其用于查询。如果它是唯一的,则也不保证唯一性属性为 true。 |
|
indcheckxmin |
bool |
如果为 true,则在该pg_index 行的xmin 低于其TransactionXmin 事件范围之前,查询不得使用索引,因为该表可能包含断开的 HOT 链,并且它们具有不兼容的行,它们可以看到 |
|
indisready |
bool |
如果为 true,则索引当前可以插入。 False 表示该索引必须被INSERT /UPDATE 操作忽略。 |
|
indislive |
bool |
如果为 false,则表示正在删除该索引,因此出于所有目的(包括 HOT 安全决策)应将其忽略。 | |
indisreplident |
bool |
如果为 true,则已使用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。 |