pgvector 在构建 HNSW 索引时,数据量大后内存吃紧,索引构建极慢,查询也会掉到磁盘。Tiger Data 推出的 pg_vectorsearch 扩展引入 PRISM 分区索引,向量以压缩码存储,再用全精度向量重排,显著降低内存占用。
在 1 亿向量测试中,pg_vectorsearch 构建索引耗时 49 分钟,pgvector HNSW 耗时 42 小时;95% 召回率下,前者 p50 延迟 6 毫秒,后者 8 毫秒。索引体积分别为 25 GB 和 180 GB。在 100 万向量测试中,构建时间分别约 3 分钟和 21.7 小时,查询延迟分别为 3 毫秒和 122 毫秒。
不过对比存在倾斜:pgvector 使用了非默认的 hnsw-m16.toml 配置,构建时间被拉长。pg_vectorsearch 目前仍是 alpha 版本,要求 PostgreSQL 18+,云厂商尚未提供扩展白名单,索引维护为手动实验性功能,不建议直接上生产。
如果 HNSW 索引已在内存中且有余量,多数 RAG 应用仍可继续使用 pgvector。只有在向量超过千万级、索引装不下内存,或需要 99% 召回率且 pgvector 达不到时,才可在副本或测试环境先试 pg_vectorsearch,等 GA 后再评估迁移。
