↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3
历史版本。 PostgreSQL 7.3 已结束支持。 请参阅 当前版本手册.

3.3. pg_am #

pg_am 存储关于索引访问方法的信息。系统支持的每种索引访问方法各有一行。

表 3.3. pg_am 列

名称类型引用描述
amnamename 访问方法的名
amownerint4pg_shadow.usesysid所有者的用户 ID(目前未使用)
amstrategiesint2 该访问方法的操作符策略数
amsupportint2 该访问方法的支持例程数
amorderstrategyint2 如果索引不提供排序顺序则为零,否则为描述该排序顺序的策略操作符的策略编号
amcanuniquebool AM 是否支持唯一索引?
amcanmulticolbool AM 是否支持多列索引?
amindexnullsbool AM 是否支持 NULL 索引项?
amconcurrentbool AM 是否支持并发更新?
amgettupleregprocpg_proc.oid“取下一个有效元组”的函数
aminsertregprocpg_proc.oid“插入此元组”的函数
ambeginscanregprocpg_proc.oid“开始新扫描”的函数
amrescanregprocpg_proc.oid“重新开始此扫描”的函数
amendscanregprocpg_proc.oid“结束此扫描”的函数
ammarkposregprocpg_proc.oid“标记当前扫描位置”的函数
amrestrposregprocpg_proc.oid“恢复已标记扫描位置”的函数
ambuildregprocpg_proc.oid“构建新索引”的函数
ambulkdeleteregprocpg_proc.oid批量删除函数
amcostestimateregprocpg_proc.oid索引扫描的代价估计

支持多列的索引 AM(amcanmulticol 为真)必须支持在第一列之后的列上索引空值,因为规划器会假定该索引可用于只涉及第一列(前几列)的查询。例如,考虑一个建立在 (a,b) 上的索引和一个带 WHERE a = 4 的查询。系统会假定该索引可用于扫描满足 a = 4 的行;如果访问方法在 b 为空时要丢弃带有空 b 的项,这就错了。不过,省略第一个被索引列为空的行是可以的(GiST 目前就是这样做的)。amindexnulls 只有在索引 AM 对所有行(包括空值的任意组合)都建立索引时才应设为真。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.