Contents

向量数据库学习笔记:从关系型到向量型的演进

向量数据库学习笔记:从关系型到向量型的演进

数据库演进概览

数据库技术经历了从关系型到非关系型,再到向量数据库的持续演化。

  • 关系型数据库(如 MySQL、Oracle)以表格形式存储结构化数据,通过 SQL 操作,具备 ACID 事务特性,适合复杂查询与强一致性场景(例如金融交易)。
  • NoSQL 采用键值、文档、列族等灵活模型,牺牲部分一致性以换取更好的扩展性与性能,适用于高并发与大数据场景。
    两类系统通常在实际工程中协同工作,各取所长。

什么是向量数据库?

核心定义与特征
向量数据库专门用于存储、管理与检索高维向量,其检索目的是相似性搜索而非精确匹配。
示例:将“适合新手的相机”转为向量后,可在向量空间中召回语义相近的条目(如“入门级相机”或“初学者机型”),从而实现语义检索与推荐。

向量数据库的核心原理

数据表示:嵌入(Embedding)
原始数据(文本、图像、音频等)通过嵌入模型映射为高维向量。例如,一段文本可能被转换为 768 维的向量。语义相近的输入在向量空间中距离更近,这是语义检索成立的基础。
数据组织:点(Point)与集合(Collection)
  • 点(Point):最小存储单位,通常包含 ID、向量与元数据(payload)。
  • 集合(Collection):点的容器,类似关系数据库中的表。
    示例用法场景:将人事政策按片段存入集合,每个片段作为一个点并附带来源、更新时间等元信息。
检索机制:索引与相似度

逐一暴力比对所有向量效率低。常见索引方法包括:

  • HNSW(图索引):当前主流,检索速度优异。
  • IVF(倒排文件 + 聚类):先定位近似桶再精搜。
  • FLAT:暴力检索,精确但耗时。

相似度常用余弦相似度(cosine)或欧氏距离(L2)。


为什么需要专用向量数据库?

效率与规模的考量
虽然通用数据库(例如 PostgreSQL + pgvector)也能存储向量,但在百万至十亿级数据规模与高维向量场景下,专用向量数据库在检索速度、索引优化与分布式扩展方面具有明显优势。
相当于:通用卡车可搬运家具,但专业搬运公司提供更高效的设备与流程。

典型应用场景

应用一览
  • 检索增强生成(RAG):存储文档片段向量,查询时快速召回相关上下文供 LLM 使用。
  • 智能推荐:基于用户历史行为与偏好进行相似内容推荐。
  • 图像/视频检索:实现以图搜图或内容相似检索。
  • 语义搜索:理解查询意图,超越关键词匹配。

主流产品与选型建议

产品示例与选型要点

常见向量数据库与特点:

  • Milvus:开源、分布式、功能全面,适合大规模部署。
  • Chroma:轻量、易上手,适合快速原型与中小规模使用。
  • Pinecone:托管云服务,无需自维护,适合希望降低运维成本的场景。
  • PGVector:PostgreSQL 插件,适合已有 PG 生态的场景或小规模需求。

选型时需平衡性能、易用性、扩展性与成本。入门可优先尝试 Chroma 或 PGVector;面对海量数据时优先考虑 Milvus 或托管服务(如 Pinecone)。


与传统数据库的协同

各司其职
向量数据库专注于相似性检索,而传统关系型数据库在事务、复杂聚合与强一致性场景仍不可替代。实际系统常采用混合架构:关系型数据库负责事务与结构化数据,向量数据库负责语义检索与近似查询,两者互为补充。

小结

核心结论
向量数据库是 AI 时代处理非结构化数据(文本、图像、音频等)的重要基础设施,其价值在于能够理解并检索语义相似的内容。 在工程实践中,建议将向量数据库与传统数据库结合使用,以满足既要处理事务与复杂查询又要提供语义检索的混合需求。