跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
SQLAI算法

PostgreSQL 插件 pgvector 核心功能与版本演进总结

pgvector 是 PostgreSQL 的向量搜索扩展,支持 LLM/RAG/AI 应用。总结了其版本演进路线,包括 v0.4 至 v0.8 的新特性如 HNSW 索引、并行构建、量化技术及迭代扫描。重点对比了 IVFFlat 与 HNSW 索引的适用场景,分析了标量与二值量化的存储性能平衡,并探讨了带过滤条件的向量查询优化方案。pgvector 已成为 PostgreSQL 生态中通用的向量搜索引擎基础组件。

猫巷少女发布于 2026/3/30更新于 2026/9/971 浏览
PostgreSQL 插件 pgvector 核心功能与版本演进总结

前言

向量数据库在 AI 与大模型 (LLM) 领域中是个至关重要的组件,主要承担'记忆与检索'的角色,其解决了大模型不能长期存储海量知识、推理效率受限的问题,无论是 RAG、推荐系统还是智能搜索,向量数据库都提供了'相似度搜索'的能力,让模型能找到相关上下文,而不仅仅依赖参数记忆。这其中,pgvector 则是个比较独特的存在,选择站在 PostgreSQL 的基础上,高屋建瓴,而不是另起炉灶。随着版本的不断革新,pgvector 正在从一个实验性扩展,成长为 PostgreSQL 生态中'通用的向量搜索引擎',成为 LLM/RAG/AI 应用的基础组件。

Roadmap

从 pgvector 的 roadmap 中,不难看出,pgvector 在规模化落地场景下,不断在尝试与优化,pgvector 正在从'能用'走向'高效、可扩展、适合大规模 AI 应用'的阶段。

文章配图

v0.4.x:

改进 IVFFlat 计划代价估算:优化了执行计划的成本模型,让查询优化器更合理地选择是否使用 IVFFlat 索引。增加向量维度上限:支持更高维度的向量存储,无论在表还是索引中,都能容纳更大维度的 embedding。

v0.5.x:

新增 HNSW 索引:引入 Hierarchical Navigable Small World 图索引,大幅提升高维向量相似度搜索性能。距离函数性能优化:加快余弦、内积等相似度度量的计算速度。并行 IVFFlat 构建:支持并行化创建 IVFFlat 索引,提高大规模索引构建效率。

v0.6.x:

并行 HNSW 构建:在 HNSW 索引上引入并行化构建机制,适合海量数据集场景。内存构建优化:提升了索引构建时的内存使用效率,加快索引建立速度并减少资源消耗。

v0.7.x:

halfvec 类型:支持 2 字节浮点 (半精度 float16),节省存储空间并加快计算。bit(n) 索引支持:支持对 bit 向量进行索引。sparsevec 类型:稀疏向量支持,维度上限可达 10 亿,适合大规模稀疏 embedding,应用范围越来越广,说明 pgvector 正在从'文本 embedding'走向**多模态应用 (文本、图像、音频、二进制特征)**量化 (Quantization):支持 scalar/binary 量化,进一步压缩存储和加速检索。新距离度量:支持 Jaccard / Hamming 距离。显式 SIMD:利用 CPU SIMD 指令集进行加速,显式 SIMD 则说明团队在尝试利用底层硬件优化计算,未来版本会更注重 高维、大规模 embedding 的低成本存储和高效计算。

v0.8.x:

Iterative Index Scan:提升带过滤条件查询时的召回率。HNSW 优化:改进索引构建与查询性能。云平台支持:如 Aurora、Cloud SQL 等主流云服务都已集成。

迭代扫描

0.8.0 中的迭代扫描,是我十分喜欢的特性,在 ANN 场景中,我们往往不会在全表里暴力搜索,而是要加上过滤条件,再在符合条件的数据里做向量相似度计算,但是这样就会遇到典型的 pre-filter 和 post-filter 的问题:

Pre-filtering:先应用业务过滤条件,然后在过滤后的子集里做向量相似度检索,检索空间小,结果更符合业务语义;但是只能用暴力搜索,因为过滤后的子集不再能直接利用 ANN 索引 (IVFFlat/HNSW);缺乏可扩展性,大规模数据下速度慢;Post-filtering:先在全量数据里使用 ANN 索引做向量近似搜索,得到候选集合,再对结果应用业务过滤条件。好处是能用上 ANN 索引,查询速度快,适合大规模数据;但可能会导致过滤后结果不足。

文章配图

Optimizing Filtered Vector Search in MyScale | Medium

pgvector 0.8.0 引入的 Iterative Index Scans,其实就是为了解决刚才提到的 Post-filter 与 Pre-filter 的矛盾,一个折中方案,先用 ANN 索引检索一批候选 (例如 Top-K),再应用过滤条件。如果过滤后结果还不够,就继续从索引里取更多候选,再过滤,直到得到足够的结果,或者索引没有更多候选。这样的话,好处十分明显:可以用上 ANN 索引 (速度快),并且保证过滤条件被应用,同时还避免了 Post-filter 一次性取 N 条候选但可能不够的情况,大幅提升了带过滤条件的向量查询在 PostgreSQL 里的可用性和扩展性。

量化

0.7.0 以后还支持 Quantization 减少索引的大小,量化在实际应用中是一种存储与性能的平衡手段,适合大规模 embedding 场景。量化是指将高精度浮点向量压缩成更低精度的表示,以减少存储和加快计算,代价是精度损失 (Recall 降低),但通过 rerank 可恢复精度。其中量化又分为:

Scalar Quantization (标量量化):例如把 4 字节 float 压缩成 2 字节 half-float,甚至 1 字节整数。Binary Quantization (二值量化):将向量编码为比特串,用汉明距离比较。

文章配图

根据实验,Scalar (2-byte float):索引大小减半 (7.7GB→3.8GB),查询速度稍有提升,Recall 几乎不变。Binary:索引极小 (7.7GB→0.47GB),构建速度更快,QPS 大幅提高,但 Recall 降低,需要 rerank 补偿。

IVFFlat Index Vs. HNSW Index

另外一个老生常谈的问题便是索引的选择了,什么时候选择 IVFFlat?什么时候选择 HNSW?

文章配图

IVFFLAT:

建索引时需要训练步骤,即必须有一定数量的数据;插入新数据后,如果分布发生变化,索引可能需要重建,尤其是频繁变更的场景,需要定期重建;检索速度快,但召回率受限于簇的划分与搜索范围 (由 probes 参数控制)。典型场景:离线批量语义搜索、企业知识库、冷数据索引。

HNSW:

不需要聚类训练,可以随时插入;插入时间会随着数据量增加而变慢;查询速度和 recall 表现优异;索引体积和内存消耗较大。典型场景:在线推荐、对话检索 (RAG)、个性化搜索、需要低延迟的实时应用。

其中在创建 HNSW 索引的时候,还有 m 和 ef_construction 选项:m 用于控制索引图的稠密程度 (每个点的邻居数);ef_construction 则是用于控制建索引时的候选规模,影响建图质量与召回率;就像'面试时你愿意筛选多少简历'。筛得越多,找到最佳候选的概率越大,但耗费的时间也越多。两者都越大,召回率越高,但内存和构建开销越大。

总结

pgvector 正在从一个实验性扩展,成长为 PostgreSQL 生态中'通用的向量搜索引擎',成为 LLM/RAG/AI 应用的基础组件。根据奥卡姆剃刀原理,PostgreSQL 以其先进性、可扩展性等,当之无愧为 AI 时代的数据库首选。

参考:

https://github.com/pgvector/pgvector

Best practices for using pgvector

PostgreSQL 上的向量搜索实践

目录

  1. 前言
  2. Roadmap
  3. 迭代扫描
  4. 量化
  5. IVFFlat Index Vs. HNSW Index
  6. 总结

更多推荐文章

查看全部
  • OpenClaw 本地部署与飞书集成实战
  • 基于 WeKnora 开源项目的 RAG 与知识图谱架构解析
  • AI 辅助下 Java 电商系统核心架构设计与实现
  • 基于 HarmonyOS 6.0 的智能监护系统设计与实现
  • 《Agent Runtime 工程化》第七章 权限与安全边界:7.3 secret scanning
  • 前端文件上传优化方案:分片与断点续传实现
  • ChatTTS WebUI 界面定制:修改主题、快捷键与配置导出
  • C++ 核心面试题总结:语法、内存与面向对象
  • LLM 大模型产品经理学习指南:从基础理论到实战应用
  • 告别数据线!用filebrowser在安卓手机建Web文件服务器(Termux实战)
  • KoboldAI 本地部署与配置实战指南
  • AI 变现误区解析:为何掌握工具不等于拥有商业能力
  • AI 大模型微调详解:核心原理与主流方法解析
  • Consistency Model 重塑图像生成范式:100 倍提速技术解析
  • Python 办公自动化实战:文档处理、图像合成与文件管理
  • C++ 位运算实战:从基础操作到经典算法题解
  • 具身智能视角下的机器人训练全流程解析
  • 2023 年高考大专就业前景较好的专业推荐
  • FlashTable 实测:AI 赋能低代码开发与表单构建
  • OpenAI 演讲:通过 API 将大模型集成到应用程序中

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • SQL 美化和格式化

    在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online