真正困难的往往不是把向量搜出来,而是让这套能力长期、稳定、可控地服务业务

选型不是在产品名之间投票,而是在约束之间排序

写到这里,已经看过单机索引、轻量原型工具、强调过滤与混合检索的产品,以及面向分布式场景的系统。到了真正选型时,最容易犯的错误反而是过度聚焦某个产品名,好像只要选对品牌,问题就自然解决。现实并不是这样。向量数据库的选型,本质上是在你的业务约束之间排序。

这些约束通常包括:数据规模会增长到什么级别,查询延迟目标是多少,写入是持续流式还是离线批量,过滤条件有多复杂,多租户边界有多严格,团队是否熟悉 Kubernetes,是否已经有 PostgreSQL 作为主库,以及能为这套系统投入多少运维精力。不同答案会直接把你带向不同方案。

因此,一个成熟的选型过程,不是先问“Qdrant、Weaviate、Milvus 哪个更强”,而是先问“我们到底需要哪类能力,哪些成本不能接受”。产品只是这些约束的映射。

一个实用的选型视角

可以把常见方案粗略分成四档。第一档是直接在应用里使用 FAISS 或本地库,适合离线任务和单机服务。第二档是 Chroma 这类偏原型工具,适合验证检索链路。第三档是 Qdrant、Weaviate 这类成熟服务化产品,适合中到大型应用。第四档是 Milvus 这类更重的分布式系统,适合真正的大规模生产检索平台。

如果你已经有 PostgreSQL,并且数据规模、并发与过滤复杂度都还处在中低水平,那么还有一条常被讨论的路径:pgvectorpgvectorpgvectorpgvector is a PostgreSQL extension that adds vector storage and similarity search support inside Postgres. It is often attractive for teams that want to keep vector retrieval within an existing relational database stack. 。它把向量检索纳入现有数据库体系,能显著降低系统数量和运维切换成本。

这里没有一个永远正确的答案。好的选型往往不是“性能理论最强”,而是在当前阶段让整体系统最稳定、最可控。

什么时候 pgvector 足够好

很多团队在向量数据库话题里会忽视 pgvector,因为它看起来不够“专门”。但在很多业务里,pgvector 恰恰是务实方案。你已经有 PostgreSQL,已经有备份、主从、监控、权限和 SQL 经验;此时如果数据量并不夸张,向量检索又需要和大量结构化过滤紧密结合,那么继续待在 Postgres 体系里,往往能让项目推进更快。

它的优势非常现实:数据一致性模型清楚,事务语义现成,业务数据和向量数据可以放在更近的位置,团队不必额外维护另一套数据库集群。对很多“检索是能力之一,而非整个平台核心”的应用来说,这种整合度非常有价值。

但你也要接受它的边界。随着向量量级增长、查询量提升、索引种类需求增多,以及独立扩缩容需求增强,专门的向量数据库通常会给出更自然的性能和调优空间。pgvector 的问题不在于不能用,而在于在更高规模下是否仍然划算。

备份与恢复:不要只备原始文档

向量系统的备份常被做得过于粗糙。很多团队只备了原始文档,心里想的是“向量丢了就重新算”。这在小规模实验阶段尚可接受,但在生产里往往不够。原因很简单:重算 embedding 需要时间,重新构建索引也需要时间,期间系统性能和结果可能都会发生波动。

因此,生产级方案至少要明确三层资产。第一层是原始文档与业务元数据;第二层是生成后的 embedding;第三层是索引或数据库内部状态。不同产品对第三层的可迁移性与恢复方式不同,但你至少要知道:一旦节点故障、集群迁移或版本升级,自己究竟依赖哪一层来恢复服务。

恢复时间目标恢复时间目标恢复时间目标指系统从故障发生到重新可用,业务能接受多长时间。若你的向量库需要几小时重算和重建索引,而业务只能接受十分钟中断,那么仅备原始文档显然不够。 会直接决定备份策略。如果你的 RTO 很短,就不能把“重建一切”当作默认恢复手段。

扩容时最常见的误判

很多人把扩容想成简单加机器,但向量检索的扩容常常不只是算力问题。你还要考虑数据分片后召回率是否变化、热点集合是否造成负载不均、索引重建是否影响在线流量、对象存储和网络带宽是否跟得上。对图索引来说,分片本身就可能影响搜索路径;对压缩索引来说,重建过程可能是主要成本。

因此,扩容策略应尽早与数据增长模式绑定。是按租户分片,还是按时间分层,还是冷热分离?写入增长和查询增长是否同步?是否需要单独扩查询副本,而不是一味扩大数据节点?这些问题如果拖到出瓶颈再想,通常会变成被动迁移。

监控不能只看 QPS 和延迟

向量数据库上线后,很多团队只盯住平均延迟和请求量,这远远不够。你至少还应观察索引构建队列长度、段数量、内存占用、缓存命中、查询候选规模、过滤后剩余样本量,以及不同租户或不同 collection 的负载分布。

如果系统接入 RAG,还要把数据库指标和上层效果指标联动起来看。例如召回文档数量是否下降、答案引用率是否波动、重排前后点击反馈是否变差。因为向量库问题最难发现的一点在于,它常常不会直接报错,而是以“结果慢慢变差”的方式出现。只有把基础设施指标与应用效果一起监控,才能及早定位问题。

多租户隔离不是给后期补的

多租户知识库、企业检索平台和 SaaS 类问答系统,几乎都会遇到隔离问题。最理想的状态,是在数据建模阶段就确定隔离边界:究竟是每租户单独 collection,还是共享 collection 加租户字段过滤,还是按大客户独立集群。不同选择影响的不只是安全,还包括运维复杂度、索引重建粒度、成本与热点分布。

多租户隔离multi-tenant isolationmulti-tenant isolationMulti-tenant isolation is the practice of ensuring one tenant's vectors, metadata, and retrieval traffic do not leak into or interfere with another tenant's workload. It can be implemented at the collection, partition, filter, or infrastructure level. 没有通用模板。租户数量少但单租户数据量大时,独立 collection 或独立实例可能更清楚;租户数量极多但单租户数据量小,则往往需要共享基础设施并依赖过滤与权限控制。关键是别把隔离留到最后再补,因为后补通常意味着数据迁移与索引重构。

一个实用的选型顺序
先判断是否可以继续留在现有数据库体系,例如 PostgreSQL。若不行,再看是否仍处于原型阶段,若是则优先轻量方案。进入服务化阶段后,再比较过滤、混合检索和部署模型;只有在数据规模、并发和运维要求真正逼近分布式边界时,再考虑更重的系统。这个顺序的重点不是保守,而是避免过早承担不必要的复杂度。

最后的问题:向量数据库在 RAG 里到底扮演什么角色

本系列从“向量数据库是什么”讲到索引、产品和生产实践,最后需要回到最常见的应用背景,也就是 RAG。很多材料会把 RAG 说成“大模型加向量库”这么简单,但真正稳定的 RAG 流水线远比这复杂。它通常至少包含文档摄取、清洗、切分、embedding、存储、检索、重排、上下文拼装和生成几个环节。

在这条链路里,向量数据库承担的是“把外部知识以可召回形式组织起来”的责任。它既不是整个系统的全部,也不是可有可无的边角部件。它决定了模型能否在合理时间内看到真正相关的上下文,决定了多租户和权限约束能否在召回阶段落实,也决定了扩容和运维成本是否会压垮整个知识系统。

更重要的是,向量数据库让 RAG 从一次性 demo 变成可持续运行的系统。没有它,你当然也能做小规模相似搜索;但当文档数量、用户数量和更新频率上来之后,检索质量、系统稳定性和运维边界都会逼着你把“数据库”这层补全。大模型负责理解与生成,embedding 模型负责表示,向量数据库负责检索与组织,这三者构成了现代 RAG 的基本骨架。

如果把这个关系看清楚,那么向量数据库就不再只是大模型应用里的一个热门名词,而是一种非常具体的工程角色:它把“外部知识可被语言模型有效利用”这件事,落成了可索引、可过滤、可扩展、可运维的现实系统。

本篇要点

  • 向量数据库选型本质上是在业务约束之间排序,而不是在产品名之间投票。
  • pgvector 对许多已有 PostgreSQL 体系的团队是务实选项,但在更大规模下专门产品通常更有空间。
  • 备份与恢复要同时考虑原始文档、embedding 和索引状态,不能只备源数据。
  • 扩容、监控和多租户隔离都应在系统早期设计,而不是等瓶颈出现后再补。
  • 在 RAG 里,向量数据库的角色是把外部知识组织成可稳定召回的系统能力,而不是孤立的相似度工具。

系列结语

如果回看整个系列,会发现向量数据库并没有某种神秘的新原理。它建立在一条非常清楚的链条之上:对象先被 embedding 模型表示成向量,检索系统通过 ANN 索引快速找到邻近项,数据库层再把过滤、存储、服务与运维能力补齐。真正决定成败的,也往往不是某个术语是否听起来先进,而是你有没有把表示、检索、数据建模和系统工程一起想清楚。

对于 RAG 来说,这个认识尤其重要。一个回答质量稳定的 RAG 系统,从来不是只靠“大模型很强”就能得到的。它依赖好的切分、合适的 embedding、稳健的检索、必要的重排和可控的数据库基础设施。向量数据库处在这条链路的中央位置:它既承接上游的向量化结果,也决定下游能否把正确知识交给模型。理解它,实际上是在理解现代知识增强型 AI 应用的骨架。

参考资料

版权声明: 如无特别声明,本文版权归 sshipanoo 所有,转载请注明本文链接。

(采用 CC BY-NC-SA 4.0 许可协议进行授权)

本文标题:向量数据库选型与生产实践

本文链接:https://www.sshipanoo.com/blog/ai/vector-db/08-向量数据库选型与生产实践/

本文最后一次更新为 天前,文章中的某些内容可能已过时!