MongoDB适用什么场景

MongoDB适用什么场景

杰子学编程 152 2022-06-01

MongoDB适用什么场景

一、MongoDB 数据库定位

  • OLTP 数据库
  • 原则上 Oracle 和 MySQL 能做的事情,MongoDB 都能做(包括 ACID 事务)
  • 优点:横向扩展能力,数据量或并发量增加时候架构可以自动扩展
  • 优点:灵活模型,适合迭代开发,数据模型多变场景
  • 优点:JSON 数据结构,适合微服务/REST API

二、基于功能选择 MongoDB:

screenshot-20220411-215625

三、基于场景选择 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 聚合框架,实现分析功能
  • 使用微分片架构的并发计算来大量缩减计算时间

更多精彩内容关注公众号:杰子学编程


# Java # SpringBoot # MongoDB