向量索引指标

本页面列出了与您在 AlloyDB Omni 中生成的矢量索引相关的指标。您可以使用安装 alloydb_scann 扩展程序后提供的 pg_stat_ann_indexes 视图查看这些指标。

如需详细了解如何查看指标,请参阅查看矢量索引指标

易用性指标

易用性指标包括可帮助您通过指标(例如索引配置和索引扫描次数)了解索引利用率的指标。

指标名称 数据类型 说明
relid OID 包含矢量索引的表的唯一标识符
indexrelid OID 矢量索引的唯一标识符
schemaname NAME 拥有索引的架构的名称
relname NAME 包含索引的表的名称
indexrelname NAME 索引的名称
indextype NAME 索引的类型。此值始终设置为 alloydb_scann
indexconfig TEXT[] 在创建索引时为其定义的配置,例如叶子数量和量化器
indexsize TEXT 索引的大小
indexscan BIGINT 在索引上发起的索引扫描次数

调优指标

通过调整指标,您可以深入了解当前的索引优化,从而应用建议来提升查询性能。

指标名称 数据类型 说明
insertcount BIGINT 索引上的插入操作数。此指标还包括在创建索引之前存在的行数。
updatecount BIGINT 索引上的更新操作数。此指标不考虑任何 HOT 更新。
deletecount BIGINT 对索引执行的删除操作数。
distribution JSONB 索引的所有分区中的向量分布。

以下字段显示了分布:
  • maximum (INT8):所有分区中的向量数量上限。
  • minimum (INT8):所有分区中的向量数量下限。
  • average (FLOAT):所有分区中的向量平均数。
  • outliers (INT8[]):所有分区中的最大离群值。此值显示前 20 个离群值。

注意:由于 K 均值聚类算法的固有特性,即使在最初创建索引时,各分区中的矢量分布也始终会存在一定程度的差异。

根据指标进行调整建议

Mutation
insertcountupdatecountdeletecount 指标共同显示索引向量的更改或更改。
该索引会使用特定数量的向量和分区进行创建。对矢量索引执行插入、更新或删除等操作时,只会影响矢量所在的初始分区集。因此,每个分区中的矢量数量会随时间而波动,可能会影响召回率和 QPS。
如果您在 ANN 搜索查询中长期遇到速度或准确性问题(例如 QPS 较低或召回率较低),不妨考虑查看这些指标。相对于向量总数而言,突变次数过多可能表示需要重新编制索引。
分布
distribution 指标显示所有分区中的向量分布。
创建索引时,系统会使用特定数量的向量和固定分区来创建该索引。分区过程和后续分发是基于这一考虑进行的。如果添加了其他矢量,它们会在现有分区中进行分区,从而导致与创建索引时的分布不同。由于最终分布不会同时考虑所有矢量,因此召回率和 QPS 可能会受到影响。
如果您发现 ANN 搜索查询的效果逐渐下降(例如响应时间变慢或结果准确性降低 [按 QPS 或召回率衡量]),不妨考虑检查此指标并重新编制索引。