NoSQL 概述
NoSQL(Not Only SQL)是与传统关系型数据库相辅相成的一类数据库系统。
核心优势
- 性能优势:通过分布式架构实现高吞吐量
- 灵活的数据模型:文档型、键值型、列族型、图数据库
- 水平扩展能力
四大家族
-
列存储 - HBase
- 基于Google Bigtable论文设计
- 适用于海量结构化数据存储
- 典型应用:金融交易记录、电信通话数据
-
键值存储 - Redis
- 内存数据库,支持持久化
- 典型应用:会话缓存、排行榜系统
- 特点:超高性能(10万+QPS)
-
图存储 - Neo4j
- 原生图数据库
- 典型应用:社交网络、推荐系统、欺诈检测
-
文档存储 - MongoDB
- BSON格式存储
- 典型应用:内容管理系统、产品目录
MongoDB 简介
MongoDB 是一个开源的 NoSQL 数据库,采用文档型数据模型。
显著特点
- 文档存储结构:使用BSON格式存储数据
- 强大的查询能力:支持丰富的查询表达式和索引
- 分布式架构:原生支持分片和副本集
体系架构
- 存储引擎:WiredTiger(默认)、In-Memory
- 查询处理层:支持CRUD、聚合管道、文本搜索
- 分片与复制层:副本集、分片集群
- 安全体系:SCRAM认证、RBAC、传输加密
与传统关系型数据库对比
| 特性 | MongoDB | 关系型数据库 |
|---|---|---|
| 数据模型 | 文档模型,无固定模式 | 表结构,需要预定义模式 |
| 扩展性 | 水平扩展容易 | 垂直扩展为主 |
| 事务支持 | 4.0+支持多文档ACID | 完整ACID事务 |
| 连接操作 | 通过嵌入文档实现 | 通过JOIN实现 |
适用场景
MongoDB 更适用:
- 快速迭代开发
- 半结构化或非结构化数据
- 需要高可扩展性
- 地理位置数据处理
关系型数据库更适用:
- 需要复杂事务处理
- 数据结构稳定
- 需要复杂JOIN操作