一篇面向工程师与技术决策者的向量数据库知识科普文章


一、背景:我们为什么开始谈“向量”

在传统信息系统中,数据主要以结构化或半结构化形式存在

  • 数据库中的表、字段、行
  • 文档系统中的关键词、标签
  • 搜索引擎中的倒排索引

这类体系在处理 “确定性、精确匹配” 的问题上非常高效,例如:

  • where id = 1001
  • title like '%数据库%'
  • keyword = 'PostgreSQL'

但随着业务逐渐智能化,出现了一类全新的问题:

“相似”比“相等”更重要

例如:

  • 这段话和另一段话“意思是否接近”?
  • 这张图片和哪些图片“看起来像”?
  • 用户当前行为和历史哪些用户“最相似”?
  • 这个问题,和我之前问过的哪个问题“语义相近”?

这类问题,无法用传统 SQL 或关键词索引优雅解决,于是:

向量化表示 + 相似度搜索 成为新的基础能力。

而“向量数据库”,正是为此而生。


二、什么是向量数据库(Vector Database)

1. 一句话定义

向量数据库,是一种以“向量”为核心数据模型,专门用于高效存储、索引和检索高维向量,并支持相似度搜索的数据库系统。

它解决的核心问题是:

在海量高维数据中,快速找到“最相似的那些”。


2. 什么是“向量”

在这里,“向量”并不是数学课本里的抽象概念,而是:

现实世界对象在“特征空间”中的数值化表示

常见示例:

对象 向量来源 典型维度
文本 Embedding 模型(BERT / Qwen / OpenAI) 384 / 768 / 1536
图片 CNN / ViT 512 / 1024
音频 声学模型 256 / 512
用户 行为特征工程 几十到几百

例如:

“MySQL 是一个数据库”

在经过 embedding 模型后,可能变成:

[0.021, -0.113, 0.887, ..., -0.045]

这个向量在数学空间中的“位置”,就代表了这段文本的语义含义


3. 向量数据库里存什么

一个典型的向量数据库,存储的并不只是向量本身,而是:

(id, vector, metadata)
  • id:唯一标识
  • vector:高维浮点数组
  • metadata:结构化信息(JSON / KV / 标签)

例如:

{
  "id": "doc_1024",
  "vector": [0.12, -0.88, ...],
  "metadata": {
    "title": "向量数据库入门",
    "source": "blog",
    "date": "2026-01-01"
  }
}

三、为什么传统数据库不适合做向量搜索

1. 高维空间的“维度灾难”

传统数据库索引(B-Tree、Hash)适用于:

  • 低维
  • 可排序
  • 精确匹配

但向量搜索面临的是:

  • 几百到几千维
  • 连续浮点数
  • 近似匹配(Top-K)

在高维空间中:

距离函数退化、索引剪枝失效、全表扫描不可避免。


2. SQL 对“相似度”并不友好

你很难用 SQL 优雅表达:

“找出和这个向量最接近的 10 条记录”

即便某些数据库支持:

ORDER BY cosine_distance(vec, :query_vec)
LIMIT 10;

在数据规模达到百万、千万级时,性能通常不可接受。


3. 向量搜索需要“近似”而不是“绝对正确”

工程上,向量搜索通常追求的是:

  • 速度优先
  • 可接受误差

这与传统数据库强调的:

  • ACID
  • 强一致性
  • 精确结果

在设计哲学上存在根本差异。


四、向量数据库是如何工作的

1. 核心流程

原始数据
   ↓
Embedding 模型
   ↓
高维向量
   ↓
向量索引(ANN)
   ↓
相似度检索

2. 相似度度量方式

常见距离函数:

  • 余弦相似度(Cosine Similarity)
  • 欧氏距离(L2)
  • 内积(Dot Product)

向量数据库会根据索引类型和模型特性选择合适的度量方式。


3. 核心技术:ANN(Approximate Nearest Neighbor)

向量数据库的灵魂,在于 近似最近邻搜索算法,常见包括:

  • HNSW(图结构,当前事实标准)
  • IVF / IVF-PQ
  • LSH
  • Annoy

它们的共同目标是:

在可控误差下,将搜索复杂度从 O(N) 降到接近 O(log N)。


五、为什么“现在”向量数据库变得重要

1. 大模型时代的基础设施

在 LLM 体系中,向量数据库是:

  • RAG(Retrieval-Augmented Generation)的核心组件
  • Agent 的长期记忆
  • 多模态系统的统一语义索引层

一句话总结:

没有向量数据库,大模型只能“即兴发挥”。


2. 非结构化数据爆炸

现实世界的数据中:

  • 文本、图片、音频、视频占比远高于结构化表

向量数据库,是连接 非结构化世界计算系统 的桥梁。


3. 业务从“规则”走向“相似性”

越来越多系统的核心逻辑是:

  • 推荐
  • 匹配
  • 搜索
  • 召回

而这些,本质都是:

在向量空间中找邻居。


六、向量数据库能做什么(典型应用)

1. 语义搜索

  • 不再依赖关键词
  • 支持“意思相近即可”

2. RAG / 知识问答

  • 文档向量化
  • 问题向量化
  • 检索 + 生成

3. 推荐系统

  • 用户向量
  • 内容向量
  • 行为相似性

4. 多模态检索

  • 以图搜图
  • 以文搜图
  • 跨模态匹配

七、向量数据库 ≠ 传统数据库的替代

需要明确的是:

向量数据库不是用来替代关系型数据库的。

更合理的架构是:

关系型数据库:事务 / 结构化数据
向量数据库:相似度 / 语义层
对象存储:原始文件

它们是互补关系,而非竞争关系。


八、总结

  • 向量数据库解决的是 “相似性检索” 这一全新维度的问题
  • 它以 高维向量 + ANN 索引 为核心
  • 在大模型、RAG、多模态、推荐系统中已成为基础设施
  • 它并不取代传统数据库,而是扩展了数据系统的能力边界

当你的系统开始关心“像不像”,而不是“是不是”,你就需要向量数据库。


Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐