[智能体-287]:向量数据库 vs 传统关系型数据库(MySQL):存储内容 + 常用操作对比
向量数据库 vs 传统关系型数据库(MySQL):存储内容 + 常用操作对比
一、各自存放内容(核心区分,结合词向量案例)
1. 传统关系型数据库(MySQL/PostgreSQL):结构化数据
只存标量结构化数据,无高维浮点向量
存储字段类型:数字、字符串、日期、枚举、布尔。
示例数据表:水果信息表
表格
| id(int) | name(varchar) | category(varchar) | price(float) | create_time(date) |
|---|---|---|---|---|
| 1 | 苹果 | 水果 | 8.5 | 2025-01-10 |
| 2 | 香蕉 | 水果 | 6.2 | 2025-01-11 |
| 3 | 轿车 | 交通工具 | 99999 | 2025-02-01 |
用途:业务属性、原文、编号、价格、分类等业务字段。
2. 向量数据库(Milvus/Qdrant/Chroma):非结构化数据:向量
两类数据同存:标量字段 + 高维稠密向量字段(词向量 / Embedding)Collection(等价数据表)结构:
表格
| id (主键) | name (字符串标量) | category (字符串标量) | vec (向量字段,3 维浮点数组) |
|---|---|---|---|
| 1 | 苹果 | 水果 | [0.61,0.22,-0.55] |
| 2 | 香蕉 | 水果 | [0.58,0.25,-0.52] |
| 3 | 轿车 | 交通工具 | [-0.62,0.28,0.35] |
- 标量:分类、名称、标签,用于过滤;
- 向量:由 Word2Vec/BERT 生成,用于语义相似度搜索。
落地规范:MySQL 存业务详情,向量库只存标签 + 向量 + 唯一 ID。
二、核心操作对比:增、删、改、查(重中之重)
1、新增数据
MySQL:INSERT,整行结构化写入
sql
INSERT INTO fruit(id,name,category,price) VALUES(1,'苹果','水果',8.5);特点:字段固定约束、类型校验、支持事务。
向量库:add/insert,同时写入标量 + 向量数组
python
运行
coll.add(ids=["1"],documents=["苹果"],metadatas=[{"category":"水果"}], embeddings=[[0.61,0.22,-0.55]])特点:向量是浮点数组,无严格范式约束。
2、删除数据
MySQL:按字段条件删除(等值 / 区间)
sql
DELETE FROM fruit WHERE id=1; DELETE FROM fruit WHERE category='水果';向量库:按 id删 / 按标量过滤批量删
python
运行
coll.delete(ids=["1"]) coll.delete(where={"category":"水果"})3、修改更新
MySQL:UPDATE,按条件修改任意标量字段
sql
UPDATE fruit SET price=9 WHERE id=1;向量库:整体覆盖,不能单独修改向量中某一个浮点数,只能整条数据替换向量
python
运行
coll.update(ids=["1"],embeddings=[[0.62,0.23,-0.54]])4、查询(最本质差距)!!!!
(1)MySQL:精确匹配 / 区间查询,没有语义检索能力
- 等值查询
sql
SELECT * FROM fruit WHERE name='苹果';只能查出苹果,查不出香蕉。
- 范围筛选
sql
SELECT * FROM fruit WHERE price<10 AND category='水果';只能按字面、数值筛选,不懂词义相似。
(2)向量数据库:两种查询:标量过滤 + 向量相似度检索(ANN)
- 普通标量过滤(同 MySQL):筛选 category="水果"
- 核心:向量相似检索(独有)输入苹果向量
[0.61,0.22,-0.55],查 Top2 相似:
python
运行
res=coll.query(query_embeddings=[[0.61,0.22,-0.55]],n_results=2)返回:苹果、香蕉(语义相近,文字不一样也能命中)。
3.混合查询(工业常用):先标量过滤,再向量检索
python
运行
coll.query(query_embeddings=[...],where={"category":"水果"})先筛水果类目,再在水果里找语义相似内容。
5、额外特有操作
MySQL 独有
- JOIN 多表关联、GROUP BY 分组统计、聚合 (sum/count)、外键约束、事务回滚。
向量库独有
- 构建 HNSW/IVF 向量索引、余弦 / L2 距离计算、向量归一化、批量向量聚类。
三、简明总结
- MySQL:存属性,查字面;擅长精确筛选、统计、业务账务。
- 向量库:存属性 + 词向量,查语义;擅长相似召回、RAG、以文搜文。
