NoSQL 概述

NoSQL(Not Only SQL)是与传统关系型数据库相辅相成的一类数据库系统。

核心优势

  1. 性能优势:通过分布式架构实现高吞吐量
  2. 灵活的数据模型:文档型、键值型、列族型、图数据库
  3. 水平扩展能力

四大家族

  1. 列存储 - HBase

    • 基于Google Bigtable论文设计
    • 适用于海量结构化数据存储
    • 典型应用:金融交易记录、电信通话数据
  2. 键值存储 - Redis

    • 内存数据库,支持持久化
    • 典型应用:会话缓存、排行榜系统
    • 特点:超高性能(10万+QPS)
  3. 图存储 - Neo4j

    • 原生图数据库
    • 典型应用:社交网络、推荐系统、欺诈检测
  4. 文档存储 - MongoDB

    • BSON格式存储
    • 典型应用:内容管理系统、产品目录

MongoDB 简介

MongoDB 是一个开源的 NoSQL 数据库,采用文档型数据模型。

显著特点

  1. 文档存储结构:使用BSON格式存储数据
  2. 强大的查询能力:支持丰富的查询表达式和索引
  3. 分布式架构:原生支持分片和副本集

体系架构

  1. 存储引擎:WiredTiger(默认)、In-Memory
  2. 查询处理层:支持CRUD、聚合管道、文本搜索
  3. 分片与复制层:副本集、分片集群
  4. 安全体系:SCRAM认证、RBAC、传输加密

与传统关系型数据库对比

特性MongoDB关系型数据库
数据模型文档模型,无固定模式表结构,需要预定义模式
扩展性水平扩展容易垂直扩展为主
事务支持4.0+支持多文档ACID完整ACID事务
连接操作通过嵌入文档实现通过JOIN实现

适用场景

MongoDB 更适用

  • 快速迭代开发
  • 半结构化或非结构化数据
  • 需要高可扩展性
  • 地理位置数据处理

关系型数据库更适用

  • 需要复杂事务处理
  • 数据结构稳定
  • 需要复杂JOIN操作