**一句话讲清楚**RAG、Agent记忆、推荐系统背后都靠向量数据库做语义检索。但Chroma、Qdrant、Milvus、Redis Vector、PgVector到底怎么选这篇从原理到选型逻辑一次讲透。01 什么是向量数据库为什么不能用MySQL硬扛向量数据库是专门存储、索引、检索高维向量的专用数据库。文本、图片、音频经过Embedding模型变成一串数字比如1536维向量数据库的核心活儿就是给定一个查询向量快速找出语义最接近的那些。传统数据库只能做精准匹配WHERE id123和模糊匹配LIKE ‘%关键词%’它不理解手机和移动电话语义相近。向量数据库通过距离算法余弦、欧氏计算语义相似度这是RAG知识库、Agent记忆检索、推荐系统的底层基础设施。为什么不能用MySQL存向量数组数据量小几百条暴力遍历确实能跑。但到了万级以上每次查询都要把Query向量和所有向量逐个算距离时间复杂度O(N)多人并发直接崩。向量数据库内置ANN近似最近邻索引用极小的精度损失换百倍提速还支持过滤、分片、持久化。02 五大主流方案横向对比直接上对比表一目了然方案技术栈数据量级运维成本适配场景ChromaPython 嵌入式10万零运维本地开发、Demo验证QdrantRust10万~千万低中小规模生产RAGMilvusC/Go 分布式亿级以上高需K8s大型企业、海量数据Redis VectorCRedis Stack热点缓存级低已有Redis微秒级热点检索PgVectorPG插件百万极低复用PG存量PG轻量改造Chroma纯Python嵌入式零配置import就能用。但不支持分布式、无SLA只适合本地Demo别上生产。QdrantRust写的性能强、延迟稳、单节点扛百万级。Docker一条命令部署中小团队生产首选性价比最高。Milvus国内企业落地最多的分布式方案支持亿级向量、IVF/HNSW/DiskANN/GPU多种索引。但依赖etcd、MinIO、K8s运维门槛高小团队用着浪费。Redis VectorRedis Stack内置微秒级响应。适合已有Redis架构、做热点缓存和实时推荐不适合存海量冷数据。PgVectorPostgreSQL插件SQL和向量检索混查最自然。性能远不如专用DB但存量PG项目零改造升级AI能力成本最低。03 选型决策逻辑一张图搞定选型不看个人喜好看四个硬指标数据量级、并发要求、延迟指标、运维能力。决策树· 数据量 10万、做Demo →Chroma· 10万~千万级、中小团队生产 →Qdrant· 亿级以上、需要集群高可用 →Milvus· 已有Redis、做热点缓存 →Redis Vector· 存量PG项目轻量改造 →PgVector图向量数据库选型决策图04 核心索引算法HNSW / IVF / PQ / DiskANN向量数据库快不快关键看索引算法。四种主流算法各有取舍HNSW分层导航小世界图查询最快但索引常驻内存。内存够、追求低延迟就选它Qdrant和Milvus默认推荐。IVF倒排文件K-Means聚类把向量分成N个桶查询只搜邻近几个桶。内存比HNSW省适合大数据量但内存有限。PQ乘积量化把向量压缩成短编码内存省几倍但召回率略降。存储成本敏感时用。DiskANN基于磁盘的索引十亿级以上塞不进内存时的选择Milvus支持。面试追问索引算法怎么选性能优先选HNSW内存有限选IVF成本敏感选PQ超大规模选DiskANN。实际项目经常混用——热数据HNSW走内存冷数据PQ压缩存磁盘。05 高频面试题怎么答才不像背的Q1为什么不用MySQL存向量关键看数据规模。几千条pgvector或FAISS能跑但到了xx万条每次查询暴力遍历并发上去延迟直接崩。向量数据库的核心价值不是存向量而是ANN索引过滤分片持久化这一整套工程能力在可接受的召回损失下把延迟降下来。Q2Milvus和PgVector怎么选本质是定位不同。Milvus是专门的分布式向量数据库Proxy/QueryNode/DataNode/IndexNode分工扩展数据量大、并发高时撑得住。PgVector是PG插件优势在于向量检索和业务SQL混查自然。选型数据量大增长快选Milvus数据中等、要和业务数据深度整合选PgVector。Q3选型核心考量有哪些四个维度数据规模与增长预期、读写比例与延迟要求、查询复杂度纯向量 vs 混合过滤、运维能力与成本。没有绝对好坏关键是能力和约束匹配——先定召回率要求、延迟目标、数据规模和预算再做评估别只看性能榜单。**落地总结**向量数据库选型没有银弹。Demo用Chroma快速验证生产中小规模用Qdrant性价比最高亿级以上上Milvus已有Redis做热点缓存存量PG做轻量改造。索引算法按性能优先HNSW、内存有限IVF、成本敏感PQ、超大规模DiskANN来选。关注我们一起把技术讲明白寻码札记。