logo
Database Design

NoSQL databases

NoSQL 类型与场景

NoSQL 是一个大类,指不以 SQL 作为主要数据访问语言的 database,也常被称为 non-relational database。与 relational database 不同,NoSQL 数据不一定遵循预定义 schema。NoSQL 通常遵循 BASE consistency model

常见 NoSQL 类型:

Document

Document database(文档型)以 documents 存储数据,是通用型数据库,适用于 transactional 与 analytical 应用。

Advantages

  • 直观、灵活
  • 易于 horizontal scaling
  • Schemaless

Disadvantages

  • Schemaless(缺乏强约束)
  • Non-relational

Examples

Key-value

Key-value database 是最简单的 NoSQL 类型之一,用 key-value pairs 存数据,也叫 key-value store。

Advantages

  • 简单且 performant
  • 高 traffic 场景易扩展
  • 适合 session management
  • lookup 速度快

Disadvantages

  • 仅支持基础 CRUD
  • value 不能过滤
  • 缺少 indexing 与 scanning 能力
  • 不适合复杂 query

Examples

Graph

Graph database 使用 graph 结构(nodes、edges、properties)表达与存储数据,适合语义查询。

Graph 通过 edges 连接 nodes,表示关系,很多场景可以一次 query 直接拿到关联数据。

Advantages

  • Query 速度快
  • 灵活、agile
  • 数据关系表达清晰

Disadvantages

  • 复杂度高
  • 缺少统一 query 标准

Use cases

  • Fraud detection
  • Recommendation engines
  • Social networks
  • Network mapping

Examples

Time series

Time-series database 针对 time-stamped 数据做优化。

Advantages

  • 插入与读取速度快
  • 存储效率高

Use cases

  • IoT data
  • Metrics analysis
  • Application monitoring
  • 金融趋势分析

Examples

Wide column

Wide column database(wide column store)是 schema-agnostic,把数据存到 column families,而不是传统 rows/columns。

Advantages

  • 高 scalability,可处理 PB 级数据
  • 适合 real-time big data 应用

Disadvantages

  • 成本较高
  • 写入时间增加

Use cases

  • Business analytics
  • Attribute-based data storage

Examples

Multi-model

Multi-model database 把不同模型(relational、graph、key-value、document 等)集成到单一 backend,使其支持多种 data types、indexes 与 queries。

Advantages

  • 灵活
  • 适合复杂项目
  • 数据一致性好

Disadvantages

  • 复杂
  • 生态相对不成熟

Examples

相关练习题

NoSQL databases

暂无相关练习题