🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 47.3\. `pg_am` `pg_am`存储有关索引访问方法的信息。系统支持的每种索引访问方法都有一行。 这个表的内容在[Chapter 54](#calibre_link-84)详细讨论。 **Table 47-3\. `pg_am` 字段** | 名字 | 类型 | 引用 | 描述 | | --- | --- | --- | --- | | `oid` | `oid` | 行标识符(隐藏属性; 必须明确选择) | | `amname` | `name` | 访问方法的名字 | | `amstrategies` | `int2` | 这个访问方法的操作符策略个数,或者如果访问方法没有一个固定的操作符策略集则为0。 | | `amsupport` | `int2` | 这个访问方法的支持过程个数 | | `amcanorder` | `bool` | 这种访问方式是否支持通过索引字段值的命令扫描排序? | | `amcanorderbyop` | `bool` | 这种访问方式是否支持通过索引字段上操作符的结果的命令扫描排序? | | `amcanbackward` | `bool` | 这种访问方式是否支持向后扫描? | | `amcanunique` | `bool` | 这种访问方式是否支持唯一索引? | | `amcanmulticol` | `bool` | 这种访问方式是否支持多字段索引? | | `amoptionalkey` | `bool` | 这种访问方式是否支持第一个索引字段上没有任何约束的扫描? | | `amsearcharray` | `bool` | 这种访问方式是否支持`ScalarArrayOpExpr`搜索? | | `amsearchnulls` | `bool` | 这种访问方式是否支持`IS NULL`/`NOT NULL`搜索? | | `amstorage` | `bool` | 允许索引存储的数据类型与列的数据类型不同? | | `amclusterable` | `bool` | 允许在一个这种类型的索引上群集? | | `ampredlocks` | `bool` | 允许这种类型的一个索引管理细粒度的谓词锁定? | | `amkeytype` | `oid` | `pg_type`.oid | 存储在索引里的数据的类型,如果不是一个固定的类型则为0 | | `aminsert` | `regproc` | `pg_proc`.oid | "插入这个行" 函数 | | `ambeginscan` | `regproc` | `pg_proc`.oid | "准备索引扫描" 函数 | | `amgettuple` | `regproc` | `pg_proc`.oid | "下一个有效行" 函数, 如果没有则为0 | | `amgetbitmap` | `regproc` | `pg_proc`.oid | "抓取所有有效行" 函数, 如果没有则为0 | | `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 | "建立新索引" 函数 | | `ambuildempty` | `regproc` | `pg_proc`.oid | "建立空索引" 函数 | | `ambulkdelete` | `regproc` | `pg_proc`.oid | 批量删除函数 | | `amvacuumcleanup` | `regproc` | `pg_proc`.oid | `VACUUM` 后的清理函数 | | `amcanreturn` | `regproc` | `pg_proc`.oid | 检查是否索引支持唯一索引扫描的函数,如果没有则为0 | | `amcostestimate` | `regproc` | `pg_proc`.oid | 估计一个索引扫描开销的函数 | | `amoptions` | `regproc` | `pg_proc`.oid | 为一个索引分析和确认`reloptions`的函数 |