51.26. pg_index

目录pg_index包含有关索引的部分信息。其余大部分位于pg_class中。

表 51.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)
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 对于索引键中的每一列,它包含要用于索引的排序规则的 OID;如果该列不是可排序的数据类型,则为零。
indclass oidvector pg_opclass.oid 对于索引键中的每一列,它包含要使用的运算符类的 OID。有关详情,请参见pg_opclass
indoption int2vector 这是一个indnatts值的数组,用于存储每列标志位。这些位的含义由索引的访问方法定义。
indexprs pg_node_tree 不是简单列引用的索引属性的表达式树(以nodeToString()表示)。这是一个列表,其中indkey中的每个零条目都有一个元素。如果所有索引属性都是简单引用,则为 null。
indpred pg_node_tree 表示部分索引谓词的表达式树(以nodeToString()表示)。如果不是部分索引,则为 null。
上一章 首页 下一章