Postgresql 中文操作指南
53.26. pg_index #
目录 pg_index 包含有关索引的部分信息。其余部分主要在 pg_class 中。
Table 53.26. pg_index Columns
Column Type Description |
indnatts int2 索引中列的总数(重复 pg_class.relnatts );此数字包括键和包含的属性 |
indnkeyatts int2 索引中的 key columns 数量,不记入任何 included columns ,这些 included columns 只是存储,不参与索引语义 |
indisunique bool 如果为真,则这是一个唯一索引 |
indnullsnotdistinct bool 此值仅用于唯一索引。如果为假,此唯一索引将会考虑 null 值是不同的(因此索引可以在一列中包含多个 null 值,这是 PostgreSQL 的默认行为)。如果为真,它将会将 null 值视为相等(因此索引只能在一列中包含一个 null 值)。 |
indisprimary bool 如果为真,此索引表示表的唯一键(如果为真, indisunique 应始终为真) |
indisexclusion bool 如果为真,则此索引支持排除约束 |
indimmediate bool 如果为真,则唯一性检查将在插入时立即执行(如果 indisunique 为假则无关紧要) |
indisclustered bool 如果为真,则表上一次在此索引上聚类 |
indisvalid bool 如果为真,则索引当前对查询有效。假表示索引可能不完整:它仍必须由 INSERT / UPDATE 操作修改,但不能安全地用于查询。如果它是唯一的,则唯一性属性也不保证为真。 |
indcheckxmin bool 如果为真,则查询不得在此 pg_index 行的 xmin 低于其 TransactionXmin 事件视界之前使用索引,因为表可能包含破坏的 HOT chains ,其中包含他们可以看到的不兼容行 |
indisready bool 如果为真,则索引当前已准备好插入。假表示索引必须被 INSERT / UPDATE 操作忽略。 |
indislive bool 如果为假,则索引正在被删除,并且应该出于所有目的被忽略(包括热安全决策) |
indisreplident bool 如果为真,则使用 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。 |