↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 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 已于 2007 年 11 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

3.3. pg_am #

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

表 3.3. pg_am 列

名称 类型 引用 描述
amname name   访问方法的名
amowner int4 pg_shadow.usesysid 所有者的用户 ID(目前未使用)
amstrategies int2   该访问方法的操作符策略数
amsupport int2   该访问方法的支持例程数
amorderstrategy int2   如果索引不提供排序顺序则为零,否则为描述该排序顺序的策略操作符的策略编号
amcanunique bool   AM 是否支持唯一索引?
amcanmulticol bool   AM 是否支持多列索引?
amindexnulls bool   AM 是否支持 NULL 索引项?
amconcurrent bool   AM 是否支持并发更新?
amgettuple regproc pg_proc.oid “取下一个有效元组”的函数
aminsert regproc pg_proc.oid “插入此元组”的函数
ambeginscan regproc pg_proc.oid “开始新扫描”的函数
amrescan regproc pg_proc.oid “重新开始此扫描”的函数
amendscan regproc pg_proc.oid “结束此扫描”的函数
ammarkpos regproc pg_proc.oid “标记当前扫描位置”的函数
amrestrpos regproc pg_proc.oid “恢复已标记扫描位置”的函数
ambuild regproc pg_proc.oid “构建新索引”的函数
ambulkdelete regproc pg_proc.oid 批量删除函数
amcostestimate regproc pg_proc.oid 索引扫描的代价估计

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

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。