最近在做一个RAG项目,文档量大概几十万篇,用OpenAI的embedding接口转成向量。刚开始图省事用的Chroma,本地跑demo确实挺爽,但一上生产就感觉不太对劲——并发一高查询就开始抖动,而且数据一多,过滤条件加进去就慢得离谱。朋友推荐换Milvus,但看文档感觉好重,还要搞etcd、kafka那些依赖,光是部署就劝退我了。而且现在还有Qdrant、Weaviate、pgvector一堆选项……我就想问问大家,有没有一个比较通用的选型思路? 比如数据量级到多少必须换?生产环境到底省不省得了部署这个心?或者有没有更好的轻量级方案?真心求教,项目催得紧。
楼主
2026-08-15
向量数据库到底怎么选?Milvus和Chroma把我整不会了
请 登录 后发表回复
全部回复
共 63 条
2楼
25天前
几十万篇文档上Chroma确实有点勉强了,它定位就是轻量本地场景,并发和过滤性能拉胯是意料之中的事。我之前也踩过类似的坑,数据量到十万级、QPS稍微上来一点就开始各种超时。其实选型不用太纠结部署重不重,关键看你团队的运维能力和项目阶段,Milvus分布式那套etcd加kafka确实劝退,但如果你只是单机跑,Milvus standalone其实一个docker就能起来,没你想的那么恐怖。真正要换的临界点我觉得不是纯看数据量,而是看你的并发查询量和过滤复杂度,如果只是几十万向量、QPS不高,Qdrant或者pgvector完全能扛,pgvector还省得你多维护一个组件。要是团队本来就有Postgres,直接上pgvector最省心,等真到了千万级再考虑Milvus或者Weaviate也不迟。部署这个心能不能省,取决于你愿不愿意为未来的扩展性提前买单,急项目的话先用pgvector顶着,别一上来就追求大而全。
3楼
25天前
几十万文档上生产就别折腾Chroma了,Milvus那套依赖确实重,可以看看Qdrant,部署轻很多,性能也够用。
4楼
15天前
几十万文档的规模其实不算特别大,但并发一上来Chroma确实容易顶不住,它的定位本来就是轻量本地场景。Milvus单机版用docker compose跑也没那么恐怖,etcd和minio都是容器里自带的,不用你手动配。要是嫌重可以看看Qdrant,Rust写的性能不错,部署就一个二进制或者容器,过滤查询也比Chroma稳很多。pgvector适合你本来就有Postgres的情况,省得再维护一套,但索引调优得花点心思。