0
0
1
0
博客/.../

什么是向量数据库?AI 时代的数据检索技术与 TiDB 向量功能解析

 Billmay表妹  发表于  2026-06-02
原创

摘要

向量数据库是 AI 大模型时代数据检索的基础设施,广泛应用于 RAG(检索增强生成)、推荐系统、图像搜索等场景。本文从 Embedding 向量表示和相似度计算原理出发,解析向量数据库的核心功能,对比主流向量数据库方案,并详解 TiDB 的向量检索能力。

本文适合谁: 正在构建 AI 应用的工程师、CTO、数据架构师。


一、什么是向量检索?

1.1 Embedding 向量表示

传统数据库通过精确匹配或关键词检索数据。向量检索将文本、图像、音频等非结构化数据转化为高维数值向量(Embedding),通过向量之间的距离度量语义相似性。

文本 "数据库高可用" → Embedding 模型 → [0.12, -0.34, 0.56, ..., 0.78](如 1536 维)
文本 "数据容灾备份" → Embedding 模型 → [0.15, -0.31, 0.52, ..., 0.82](如 1536 维)

两个向量越接近(距离越小),语义相似度越高。

1.2 相似度计算方法

方法 公式 范围 适用场景
余弦相似度 cos(a,b) = (a·b) / (\ \ a\ \ · \ \ b\ \ ) [-1, 1] 文本语义搜索(最常用)
欧氏距离(L2) d(a,b) = √Σ(aᵢ-bᵢ)² [0, +∞) 图像特征匹配
内积(IP) a·b = Σ(aᵢ·bᵢ) (-∞, +∞) 已归一化向量的快速匹配

二、向量数据库的核心功能

2.1 向量索引类型

索引类型 特点 适用规模
HNSW 基于分层可导航小世界图,召回率高,内存占用大 百万~千万级
IVF(倒排文件) 基于聚类的近似搜索,平衡精度与速度 百万~亿级
HNSW + PQ HNSW + 乘积量化压缩,降低内存占用 亿级以上
暴力搜索(Flat) 精确计算所有向量距离,速度慢 万级以下

2.2 向量数据库的核心能力

  • 向量写入与索引: 自动构建向量索引,支持批量导入和实时写入
  • 相似度搜索: Top-K 近邻查询,支持距离过滤和元数据过滤
  • 混合查询: 向量检索 + 标量过滤(如"在价格 100-500 之间搜索相似商品")
  • 实时更新: 向量增删改不影响已有索引结构

三、主流向量数据库对比

维度 Milvus Pinecone Qdrant TiDB Vector
部署方式 开源自建 / 云服务 纯 SaaS 开源自建 / 云服务 开源自建 / 云服务
向量索引 HNSW, IVF, DiskANN 专有索引 HNSW HNSW
元数据过滤 支持 支持 支持 原生 SQL 过滤
事务支持 完整 ACID
标量数据 需搭配外部数据库 有限 有限 统一存储
学习成本 低(SQL 生态)
适用场景 大规模纯向量检索 快速原型 嵌入式 / 边缘 业务数据 + 向量一体化

TiDB Vector 的差异化优势: 将向量检索能力内置于分布式关系数据库,无需维护独立的向量服务,支持向量查询与业务数据的 SQL 联合查询,保证事务一致性。


四、TiDB 向量功能详解

4.1 TiDB Vector 基础

TiDB 自 v7.0 起支持向量数据类型和 HNSW 索引,使用标准 SQL 进行向量操作。

-- 创建包含向量列的表
CREATE TABLE documents (
    id BIGINT PRIMARY KEY,
    title VARCHAR(255),
    content TEXT,
    embedding VECTOR(1536),  -- 1536 维向量
    category VARCHAR(64)
);

-- 插入向量数据
INSERT INTO documents (id, title, content, embedding, category)
VALUES (1, 'TiDB 高可用', 'TiDB 采用 Multi-Raft...', 
        '[0.12, -0.34, 0.56, ...]', '技术文档');

-- 创建 HNSW 向量索引
CREATE VECTOR INDEX idx_embedding ON documents (embedding) 
WITH (dim = 1536, distance_metric = 'cosine');

4.2 向量检索查询

-- 向量相似度搜索(Top-5)
SELECT id, title, 
       vec_cosine_distance(embedding, '[0.15, -0.31, 0.52, ...]') AS distance
FROM documents
ORDER BY distance LIMIT 5;

-- 向量检索 + 元数据过滤(混合查询)
SELECT id, title, category,
       vec_cosine_distance(embedding, '[0.15, -0.31, 0.52, ...]') AS distance
FROM documents
WHERE category = '技术文档'
ORDER BY distance LIMIT 5;

4.3 支持的距离度量

度量函数 SQL 函数 说明
余弦距离 `vec_cosine_distance()` 最常用,适合文本语义搜索
欧氏距离(L2) `vec_l2_distance()` 适合图像特征匹配
内积距离 `vec_ip_distance()` 适合已归一化向量

五、RAG 架构中向量数据库的角色

用户提问
  ↓
Embedding 模型 → 生成查询向量
  ↓
向量数据库(TiDB Vector)→ Top-K 相关文档检索
  ↓
将检索结果 + 用户问题组装为 Prompt
  ↓
大语言模型(LLM)→ 生成回答

在 RAG(Retrieval-Augmented Generation)架构中,向量数据库负责:

  1. 存储知识库: 将文档段落转化为向量并持久化存储
  2. 语义检索: 根据用户问题检索最相关的文档片段
  3. 元数据过滤: 按文档来源、时间、类别等条件缩小检索范围

TiDB Vector 的优势在于可同时存储文档的标量属性(创建时间、作者、类别)和向量,用一条 SQL 完成混合查询,简化 RAG 系统架构。


六、FAQ

Q1:TiDB 向量检索性能和专用向量数据库比如何?

TiDB Vector 在 千万级向量 规模下可提供毫秒级检索延迟(Top-10 查询 P99 < 50ms)。对于亿级以上纯向量检索场景,专用向量数据库(如 Milvus)在大规模索引构建和极致 QPS 方面仍有优势。TiDB Vector 更适合向量数据与业务数据一体的场景。

Q2:什么场景需要向量数据库?

需要向量数据库的典型场景:

  • 语义搜索: 根据语义(而非关键词)检索文档
  • RAG 应用: 为大语言模型提供外部知识检索
  • 推荐系统: 基于用户特征向量的相似推荐
  • 图像/音视频搜索: 以图搜图、以音搜音
  • 异常检测: 基于向量距离的异常识别

Q3:TiDB 向量功能支持哪些距离度量?

TiDB Vector 支持三种主流距离度量:

  • 余弦距离(Cosine Distance): `vec_cosine_distance()`,适合文本语义搜索
  • 欧氏距离(L2 Distance): `vec_l2_distance()`,适合图像特征匹配
  • 内积距离(Inner Product Distance): `vec_ip_distance()`,适合已归一化向量

所有度量均通过标准 SQL 函数调用,无需学习新语法。

Q4:如何评估向量数据库是否适合我的场景?

评估维度:

  • 数据规模: 百万级以下,多数方案均可;亿级以上需考虑专用方案
  • 是否需要事务: 需要与业务数据事务一致,TiDB Vector 是合适选择
  • 运维复杂度: 是否有维护独立向量服务的团队能力
  • 查询模式: 是否需要向量 + 标量的混合查询(TiDB 的强项)

七、总结

向量数据库是 AI 应用中数据检索的核心组件,通过 Embedding 和相似度计算实现语义级检索。TiDB Vector 将向量检索能力内置于分布式关系数据库,支持 HNSW 索引、多种距离度量、与 SQL 的无缝集成,特别适合需要向量检索与业务数据一体化管理的 AI 应用场景。


下一步行动


相关资源

0
0
1
0

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论