Skip to content

你都了解哪些向量数据库?如何选型? ​

  • 标签:AI、大模型

🏛 业务架构师 ​

主流向量数据库我分三类看:

  • 专用向量库:Milvus(国产开源,大规模生产首选,存算分离可扩到十亿级,有云服务 Zilliz)、Pinecone(SaaS 免运维,海外团队省心但数据出境)、Qdrant、Weaviate(开源自部署灵活)、Chroma(轻量,本地开发/原型)。
  • 传统数据库的向量扩展:PostgreSQL + pgvector(数据量百万级以内最省事的方案,事务、权限、生态全继承)、Elasticsearch(已有 ES 的团队加向量字段即可混合检索)、Redis(低延迟缓存场景)。
  • 一体化 RAG 平台:各云厂商的托管检索服务(阿里云 DashVector 等)。

我的选型框架按业务阶段走:POC 期用 Chroma 或 pgvector,零运维成本,一周出 Demo;百万级数据、单业务线生产,pgvector 依然够用,别上重型组件;亿级向量、多业务共享、要求高 QPS 低延迟,再上 Milvus 集群。先问数据量和并发,再问产品——大多数企业知识库(几十万文档)根本到不了专用向量库的门槛,过早引入分布式组件是纯负担。

另一个硬约束是合规:数据出境敏感的,Pinecone 类 SaaS 直接排除。

🏗 系统架构师 ​

向量数据库选型我按部署形态和能力矩阵两张表来决策:

按部署形态:

  • 嵌入式/单机:Chroma、LanceDB、sqlite-vec——百万级向量以内、PoC 和边缘场景,零运维;
  • 开源分布式:Milvus(组件全、能扛十亿级、但运维重)、Qdrant(Rust 写的性能好、部署简单)、Weaviate(模块化、内置混合检索)、PGVector/PGDG(数据量和 Postgres 共享事务,亿级内最优 TCO);
  • SaaS:Pinecone(免运维、贵、数据出境合规要审)、各大云厂商托管(阿里云 DashVector、AWS OpenSearch kNN 等)。

能力矩阵关键项:混合检索(向量+BM25)、标量过滤性能(pre-filter 是否走索引)、量化压缩(PQ/SQ/binary,省 4~10 倍内存)、最大维度、增量更新与删除效率、多副本与容灾、权限模型。

我的决策树:已有 Postgres 且 <5000 万向量 → PGVector 起步(不引入新存储,事务和权限白拿);亿级以上或多租户 SaaS → Milvus/Qdrant 集群;团队小没运维 → 云托管。先估算规模再选型:向量内存 ≈ 条数 × 维度 × 4B(float32),量化可再压,这是容量规划的第一公式。

💻 全栈开发专家 ​

我按三个维度选:规模、运维成本、团队技术栈。

  • Milvus:国产、能打大规模(十亿级向量)、支持 GPU 索引和混合检索,但组件多(etcd/MinIO),自建运维不轻,适合专职团队;
  • Qdrant:Rust 写的,性能好、payload 过滤能力强,单二进制部署爽,中小规模自建首选;
  • Weaviate:模块化(内置向量化、混合检索),多租户好,云版本省事;
  • Chroma:嵌入式、单机,原型和本地开发用,别上生产大流量;
  • PGVector(含 pgvecto.rs/CHREW):已有 PostgreSQL 团队的默认答案——事务、Join、元数据过滤和向量一站搞定,千万级以内完全够用,运维零新增;
  • Elasticsearch 8+:已有 ES 栈、要 BM25+dense 混合检索的选它;
  • Redis(RediSearch):超低延迟在线场景(推荐系统召回);
  • Pinecone:海外托管 SaaS,免运维但数据出境和成本要评估。

我的实际决策路径:先问「已有基础设施是什么」——有 PG 直接 PGVector;全新且中等规模选 Qdrant;亿级向量+专职运维再上 Milvus。别为了技术先进性引入团队养不动的组件。