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。
上一章 首页 下一章