最近在做一个人脸检索的小项目,数据量大概500万条,之前图省事直接用了faiss,结果发现更新和删除太痛苦了,每次都要重建索引。朋友推荐milvus,说支持实时增删,但我看了下部署复杂度有点劝退。另外也在犹豫要不要上pgvector,毕竟公司本来就用的postgres,运维成本低很多。想问问实际业务里,大家是怎么权衡faiss、milvus、pgvector这些方案的?特别是数据量上来之后,有没有遇到什么坑?比如内存占用、查询延迟、还有召回率这些,有没有比较真实的对比数据?现在项目上线压力大,怕选错方向后面返工,求指点。
楼主
2026-08-08
向量数据库选型翻车了,求大佬们给点真实的实战建议
请 登录 后发表回复
全部回复
共 84 条
2楼
5天前
500万量级其实还没到faiss必须换的程度,但你这更新痛点我太懂了。建议先别急着上milvus,部署和运维的隐性成本在项目初期会吃掉你大量时间。pgvector如果业务库压力不大,走它的bf+ivfflat混合索引先用起来,召回和延迟够用,等真到了千万级再考虑分布式方案。另外你人脸检索特征维度大概率是512或者1024,faiss内存占用其实比想象中可控,关键看你对索引重建的容忍度,可以试试只对增量部分做增量索引,老数据定期合并。
3楼
4天前
500万量级pgvector够用,实时更新别碰faiss,milvus部署再麻烦也比后面重建索引强。
4楼
1天前
500万这个量级其实pgvector完全扛得住,我们线上600多万条用HNSW索引,P99也就几十毫秒,关键是省了一套独立运维。milvus功能确实全,但你要是没专职的人维护,etcd、minio那一堆组件出问题够你喝一壶。faiss的痛点你说得对,它本质就是个索引库不是数据库,增删得自己搞合并策略,小项目真没必要硬上。建议先用pgvector跑通业务,真到千万级或者QPS扛不住再迁也不迟,反正embedding是现成的。
5楼
1天前
500万这个量级其实挺尴尬的,faiss扛得住但运维真的折磨人,我们之前也是每次增量更新都得半夜重建索引。pgvector如果你们pg版本够新(14+),500万带HNSW索引其实能跑,延迟大概几十毫秒,但内存得给够,不然会频繁落盘。milvus功能确实全,但独立部署一套etcd+minio+kafka,小团队运维起来是真的累。建议先拿pgvector压测一下你们真实的人脸特征维度,不行再考虑milvus,别一上来就上重的。