《系统设计》课程学习笔记—NoSQL 数据库

91 阅读3分钟

NoSQL是一个广泛的类别,包括所有不使用 SQL 作为主要数据访问语言的数据库。这些类型的数据库有时也称为非关系数据库。与关系数据库不同,NoSQL 数据库中的数据不必符合预定义的模式。NoSQL 数据库遵循基本一致性模型。

以下是不同类型的 NoSQL 数据库:

文档

文档数据库(也称为面向文档的数据库或文档存储)是在文档中存储信息的数据库。它们是多用途的数据库,为事务和分析应用程序提供各种使用场景。

优点

  • 直观灵活
  • 易于水平扩展
  • 无模式(schemaless)

缺点

  • 无模式(schemaless)
  • 非关系的

例子

键-值

作为最简单的 NoSQL 数据库类型之一,键值数据库将数据保存为一组键值对,每个键值对由两个数据项组成。因此也被称为键值存储。

优点

  • 简单高效
  • 对于大流量高度可扩展
  • 会话管理
  • 最优的查找

缺点

  • 基础的CRUD
  • 无法过滤值
  • 缺乏索引和扫描功能
  • 未针对复杂查询进行优化

例子

图数据库使用图结构进行语义查询,并使用节点、边和属性而不是表或文档来表示和存储数据。

图将存储中的数据项与节点和边的集合相关联,边表示节点之间的关系。这些关系允许存储中的数据直接链接在一起,在许多情况下,可以通过一个操作来检索。

优点

  • 查询速度
  • 敏捷且灵活
  • 清晰的数据表示

缺点

  • 复杂
  • 没有标准化的查询语言

使用场景

  • 欺诈检测
  • 推荐引擎
  • 社交网络
  • 网络映射

例子

时间序列

时间序列数据库是针对时间戳或时间序列数据进行优化的数据库。

优点

  • 快速插入和检索
  • 高效数据存储

使用场景

  • 物联网数据
  • 度量分析
  • 应用程序监控
  • 了解金融走势

例子

宽列

宽列数据库,也称为宽列存储,是模式无关的。数据存储在列族中,而不是行和列中。

优点

  • 高度可扩展,可处理PB级数据
  • 实时大数据应用的理想选择

缺点

  • 昂贵的
  • 增加写入时间

使用场景

  • 业务分析
  • 基于属性的数据存储

例子

多模

多模数据库将不同的数据库模型(即关系、图、键值、文档等)组合到一个单一的集成后端中。这意味着它们可以容纳各种数据类型、索引、查询,并将数据存储在多个模型中。

优点

  • 灵活性
  • 适用于复杂项目
  • 数据一致

缺点

  • 复杂
  • 不够成熟

例子