欢迎光临
我们一直在努力

关系型、非关系型、全文检索、向量数据库区别

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}

1、总览

  • 关系数据库 (RDBMS):存结构化表格数据,擅长事务、关联查询;
  • 非关系数据库 (NoSQL):泛指不使用表结构的数据库,分文档 / 键值 / 列存储等,主打高扩展;
  • 全文检索库:针对文本关键词做分词、倒排索引,快速检索包含某个词语的文档;
  • 向量数据库:存储向量 Embedding,做相似度检索(语义匹配,不是关键词匹配)。

2、误区

先厘清一个容易混淆的点:这四类并不在同一个分类轴上。

  • 关系型 vs 非关系型:是"数据怎么组织、怎么存"的维度(存储模型)
  • 全文检索 vs 向量检索:是"怎么把想要的东西找出来"的维度(检索方式)

所以它们不是互斥的四个格子——一个数据库完全可以身兼多职。比如 PostgreSQL 是关系型,但加上扩展后能同时干全文检索和向量检索;Elasticsearch 本质是全文检索引擎,同时也存文档(文档型 NoSQL),现在也支持向量。理解这一点,选型时才不会陷入"四选一"的误区。

3、关系型数据库(MySQL、PostgreSQL、Oracle)

3.1 数据模型

二维表(行 + 列),固定 Schema,表之间通过外键关联。

例:用户表 (id,name,phone),订单表 (order_id,user_id,amount)

3.2 擅长场景

强事务 ACID、多表 JOIN、复杂统计、数据一致性要求高:订单、财务、用户基础信息。

3.3 查询方式

SQL,按字段条件过滤、关联、聚合。

3.4 短板

  • 表结构修改麻烦;
  • 海量数据、高并发写入水平扩展成本高;
  • 文本模糊搜索性能差;
  • 无法原生做语义相似度。

3.5 注意

PostgreSQL 属于关系库,但可以装插件支持全文检索、向量检索。

4、非关系数据库 NoSQL(MongoDB、Redis、HBase、Cassandra)

4.1 4个子类型

NoSQL 是一大类,不是单一数据库,包含 4 个子类型

  • 键值库 Redis:key→value,适合缓存、计数器;
  • 文档库 MongoDB:JSON/BSON 文档,Schema 灵活;
  • 列存储 HBase/Cassandra:宽表,海量时序、日志写入;
  • 图数据库 Neo4j:节点 + 关系,社交网络、知识图谱。
  • 4.2 数据模型

    无固定表结构,无外键。

    4.3 擅长场景

    高并发读写、数据结构经常变动、海量数据横向扩容。

    4.4 短板

    • 大多牺牲强事务;
    • 多表关联查询弱;
    • 不擅长关键词全文检索,更不擅长语义向量检索。

    4.5 注意

    MongoDB 也内置简单向量检索,属于附加能力,不是原生定位。

    5、全文检索数据库(Elasticsearch、Solr)

    5.1 数据模型

    文档(JSON),核心是倒排索引。

    把文本拆成词语(分词),记录每个词出现在哪些文档。

    5.2 擅长场景

    关键词检索:网页搜索、商品搜索、日志检索、文档内容检索。

    例子:搜 “苹果手机”,找出标题 / 描述里包含这四个字的商品。

    5.3 查询特点

    基于词匹配,只能匹配字面关键词;不懂语义。

    搜 “手机”,不会自动返回 “移动电话”;必须同义词词典扩展。

    5.4 短板

    • 不适合强事务;
    • 不适合大量更新;
    • 无法直接做语义相似度。

    6、向量数据库(Milvus、Qdrant、PGVector)

    6.1 数据模型

    存储向量 Embedding + 原始元数据。 文本 / 图片 / 音频通过模型转为多维浮点数向量。

    "猫" → [0.12,0.34,-0.05,…768 维]

    6.2 擅长场景

    语义相似度检索,不是关键词匹配。

    输入:“毛茸茸会抓老鼠的动物”,返回 “猫” 的向量,哪怕文档里没有 “毛茸茸” 三个字。

    6.3 查询方式

    相似度计算(余弦距离、欧氏距离),找向量空间里距离最近的 TopN。

    短板

    • 不适合复杂事务、多表 JOIN;
    • 不适合纯关键词检索;
    • 向量入库、索引构建有开销。

    7、对比表

    数据库类型核心索引查询目标典型例子核心能力
    关系型 RDBMS B + 树 结构化字段、关联、事务 MySQL、PG ACID、JOIN、强一致性
    NoSQL 多种(哈希、LSM 等) 灵活数据、高并发 MongoDB、Redis 水平扩容,Schema 自由
    全文检索 倒排索引 文本关键词匹配 Elasticsearch 分词、关键词检索、高亮
    向量数据库 向量索引 (HNSW 等) 语义相似度 Milvus、Qdrant Embedding 向量近邻搜索

    8、业务选型选型

    • 订单、账户、财务,要事务 → MySQL/PG
    • 缓存、临时数据、结构经常变 → Redis / MongoDB
    • 商品搜索、日志检索、文章关键词查找 → Elasticsearch
    • RAG 知识库、图片检索、语义推荐(找相似内容)→ 向量库

    9、组合使用

    • RAG 系统:PG/MySQL 存业务元数据 + ES 关键词检索 + Milvus 向量检索(混合检索)
    • 电商:MySQL 订单 + ES 商品搜索

    PostgreSQL(关系库)可以通过 pgvector 插件支持向量检索,相当于关系库 + 向量能力,但不是专业向量库; Elasticsearch 新版本也支持向量存储,是全文检索为主,向量为辅。

    赞(0)
    未经允许不得转载:171主机测评 » 关系型、非关系型、全文检索、向量数据库区别
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址