[智能体-287]:向量数据库 vs 传统关系型数据库(MySQL):存储内容 + 常用操作对比 向量数据库 vs 传统关系型数据库MySQL存储内容 常用操作对比一、各自存放内容核心区分结合词向量案例1. 传统关系型数据库MySQL/PostgreSQL结构化数据只存标量结构化数据无高维浮点向量存储字段类型数字、字符串、日期、枚举、布尔。示例数据表水果信息表表格id(int)name(varchar)category(varchar)price(float)create_time(date)1苹果水果8.52025-01-102香蕉水果6.22025-01-113轿车交通工具999992025-02-01用途业务属性、原文、编号、价格、分类等业务字段。2. 向量数据库Milvus/Qdrant/Chroma非结构化数据向量两类数据同存标量字段 高维稠密向量字段词向量 / EmbeddingCollection等价数据表结构表格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、新增数据MySQLINSERT整行结构化写入sqlINSERT 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按字段条件删除等值 / 区间sqlDELETE FROM fruit WHERE id1; DELETE FROM fruit WHERE category水果;向量库按 id删 / 按标量过滤批量删python运行coll.delete(ids[1]) coll.delete(where{category:水果})3、修改更新MySQLUPDATE按条件修改任意标量字段sqlUPDATE fruit SET price9 WHERE id1;向量库整体覆盖不能单独修改向量中某一个浮点数只能整条数据替换向量python运行coll.update(ids[1],embeddings[[0.62,0.23,-0.54]])4、查询最本质差距1MySQL精确匹配 / 区间查询没有语义检索能力等值查询sqlSELECT * FROM fruit WHERE name苹果;只能查出苹果查不出香蕉。范围筛选sqlSELECT * FROM fruit WHERE price10 AND category水果;只能按字面、数值筛选不懂词义相似。2向量数据库两种查询标量过滤 向量相似度检索ANN普通标量过滤同 MySQL筛选 category水果核心向量相似检索独有输入苹果向量[0.61,0.22,-0.55]查 Top2 相似python运行rescoll.query(query_embeddings[[0.61,0.22,-0.55]],n_results2)返回苹果、香蕉语义相近文字不一样也能命中。3.混合查询工业常用先标量过滤再向量检索python运行coll.query(query_embeddings[...],where{category:水果})先筛水果类目再在水果里找语义相似内容。5、额外特有操作MySQL 独有JOIN 多表关联、GROUP BY 分组统计、聚合 (sum/count)、外键约束、事务回滚。向量库独有构建 HNSW/IVF 向量索引、余弦 / L2 距离计算、向量归一化、批量向量聚类。三、简明总结MySQL存属性查字面擅长精确筛选、统计、业务账务。向量库存属性 词向量查语义擅长相似召回、RAG、以文搜文。