MongoDB适用什么场景
一、MongoDB 数据库定位
- OLTP 数据库
- 原则上 Oracle 和 MySQL 能做的事情,MongoDB 都能做(包括 ACID 事务)
- 优点:横向扩展能力,数据量或并发量增加时候架构可以自动扩展
- 优点:灵活模型,适合迭代开发,数据模型多变场景
- 优点:JSON 数据结构,适合微服务/REST API
二、基于功能选择 MongoDB:
三、基于场景选择 MongoDB
- 移动/小程序/App
- 电商
- 内容管理
- 物联网
- SaaS 应用
- 主机分流
- 实时分析
- 关系型迁移
3.1、移动应用
场景特点:
- 基于 REST API / JSON
- 快速迭代,数据结构变化频繁
- 地理位置功能
- 爆发增长可能性
- 高可用
MongoDB 选型考量:
- 文档模型可以支持不同的结构
- 原生地理位置功能
- 横向扩展能力支撑爆发增长
- 复制集机制快速提供高可用
3.2、商品信息
场景特点:
- 商品信息包罗万象
- 商品的属性不同品类差异很大
- 数据库模式设计困难
MongoDB 选型考量:
- 文档模型可以集成不同商品属性
- 可变模型适合迭代
- 京东商城 / 小红书 / GAP
3.3、内容管理
场景特点:
- 内容数据多样,文本,图片,视频
- 扩展困难,数据量爆发增长
MongoDB 选型考量:
- JSON 结构可以支持非结构化数据
- 分片架构可以解决扩展问题
- Adobe AEM / Sitecore
3.4、物联网
场景特点:
- 传感器的数据结构往往是半结构化
- 传感器数量很大,采集频繁
- 数据量很容易增长到数亿到百亿
MongoDB 选型考量:
- JSON 结构可以支持半结构化数据
- 使用分片能力支撑海量数据
- JSON 数据更加容易和其他系统通过 REST API 进行集成
- 华为 / Bosch / Mindsphere
3.5、SaaS应用
场景特点:
- 多租户模式, 需要服务很多客户
- 需求多变,迭代压力大
- 数据量增长快
MongoDB 选型考量:
- 无模式数据库,适合快速迭代
- 水平扩展能力可以支撑大量用户增长
- ADP / Teambition
3.6、实时分析
场景特点:
- 流数据计算
- 快速计算,秒级返回
MongoDB 选型考量:
- 使用 MongoDB 缓存机制,可以利用内存计算加速
- 使用 MongoDB 聚合框架,实现分析功能
- 使用微分片架构的并发计算来大量缩减计算时间
更多精彩内容关注公众号:杰子学编程