MongoDB 适用场景

MongoDB的适⽤场景

  • ⽹站数据:
    Mongo ⾮常适合实时的插⼊,更新与查询,并具备⽹站实时数据存储所需的复制及⾼度伸缩性。
  • 缓存:
    由于性能很⾼,Mongo 也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo 搭建的持久化缓存层可以避免下层的数据源过载。

  • ⼤尺⼨、低价值的数据:
    使⽤传统的关系型数据库存储⼀些⼤尺⼨低价值数据时会⽐较浪费,在此之前,很多时候程序员往往会选择传统的⽂件进⾏存储。

  • ⾼伸缩性的场景:
    Mongo ⾮常适合由数⼗或数百台服务器组成的数据库,Mongo 的路线图中已经包含对MapReduce 引擎的内置⽀持以及集群⾼可⽤的解决⽅案。

  • ⽤于对象及JSON 数据的存储:
    Mongo 的BSON 数据格式⾮常适合⽂档化格式的存储及查询。

MongoDB的⾏业具体应⽤场景

  • 游戏场景
    使⽤ MongoDB 存储游戏⽤户信息,⽤户的装备、积分等直接以内嵌⽂档的形式存储,⽅便查询、更新。

  • 物流场景
    使⽤ MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,⼀次查询就能将订单所有的变更读取出来。

  • 社交场景
    使⽤ MongoDB 存储存储⽤户信息,以及⽤户发表的朋友圈信息,通过地理位置索引实现附近的⼈、地点等功能。

  • 物联⽹场景,使⽤ MongoDB 存储所有接⼊的智能设备信息,以及设备汇报的⽇志信息,并对这些信息进⾏多维度的分析。

  • 直播
    使⽤ MongoDB 存储⽤户信息、礼物信息等。

如何抉择是否使⽤MongoDB

应⽤特征 Yes / No
应⽤不需要事务及复杂join⽀持
新应⽤,需求会变,数据模型⽆法确定,想快速迭代开发
应⽤需要2000-3000以上的读写QPS
应⽤需要TB甚⾄PB级别数据存储
应⽤发展迅速,需要能快速⽔平扩展
应⽤要求存储的数据不丢失
应⽤需要99.999%⾼可⽤
应⽤需要⼤量的地理位置查询、⽂本查询