Appearance
一句话总结:向量库扩容量靠分片与副本——哈希分片负载均匀、Voronoi 分片查询局部性好,每分片 3 副本 Leader-Follower 保证高可用;降本靠量化——SQ 4x、PQ 8-32x、Binary 32x 压缩,十亿级向量内存从 31GB 压到 4GB。
分片策略(面试默写)
| 策略 | 做法 | 优点 | 缺点 |
|---|---|---|---|
| 哈希分片 | shard_id = hash(vector_id) % n | 负载均匀、路由简单 | 无视相似性、跨分片跳转 |
| 空间分片(Voronoi) | k-means 质心划分空间 | 查询常命中单分片(局部性) | 需定期重聚类、路由复杂 |
高可用模型
- 每分片 3 副本、Leader-Follower:leader 处理写,follower 复制 WAL 并服务读
- 读写分离 + 负载均衡 → 线性扩容
- 参考指标:p50 查询 <10ms、99.9% 写持久性
量化压缩三件套(必背)
| 量化 | 压缩率 | 精度损失 | 适用 |
|---|---|---|---|
| SQ 标量(float32→int8) | 4x | ~2-5% | 通用首选 |
| PQ 乘积(切 M 子段独立码本) | 8-32x | ~5-15% | 海量数据 |
| Binary 二进制 | 32x | 较大 | 超大规模粗筛 |
- RaBitQ(1+3-bit):冷数据索引压缩,Milvus Knowhere 原生支持
内存优化案例(拉分点)
1000万 × 1536维 float32:原始 31GB
→ FAISS 4-bit PQ:约 8GB
→ turbovec 4-bit:仅 4GB(内存减半)- 本地笔记本/边缘 ARM 等内存受限环境,差距决定系统能否跑起来
十万 QPS 实战模板
- 文档 ID 哈希分片,单分片 <1000 万向量(延迟 <10ms)
- 每分片 3 副本、读写分离、读负载均衡
- 客户端异步并行查多分片后合并结果
面试要点
- 能对比哈希 vs Voronoi 分片
- 能默写三种量化压缩率与损失
- 能讲 Leader-Follower 高可用
- 能报内存案例(31GB→4GB)与单分片上限(<1000 万)
相关概念
- [AI-Agent-向量数据库选型与索引调优](/学习笔记/AI技术/AI Agent/AI-Agent-向量数据库选型与索引调优) — 索引选择
- [AI-Agent-向量数据库运维与一致性](/学习笔记/AI技术/AI Agent/AI-Agent-向量数据库运维与一致性) — 运维衔接
- [AI-Agent-RAG缓存与索引运维](/学习笔记/AI技术/AI Agent/AI-Agent-RAG缓存与索引运维) — 成本优化互补
- [AI-Agent-生产部署](/学习笔记/AI技术/AI Agent/AI-Agent-生产部署) — 扩容部署