MongoDB特性
事务支持
MongoDB 目前只支持单文档事务,需要复杂事务支持的场景暂时不适合
灵活的文档模型
JSON 格式存储最接近真实对象模型,对开发者友好,方便快速开发迭代
高可用复制集
满足数据高可靠、服务高可用的需求,运维简单,故障自动切换
可扩展分片集群
海量数据存储,服务能力水平扩展
高性能
mmapv1、wiredtiger、mongorocks(rocksdb)、in-memory 等多引擎支持满足各种场景需求
强大的索引支持
地理位置索引可用于构建 各种 O2O 应用、文本索引解决搜索的需求、TTL索引解决历史数据自动过期的需求
Gridfs
解决文件存储的需求
aggregation & mapreduce
解决数据分析场景需求,用户可以自己写查询语句或脚本,将请求都分发到 MongoDB 上完成
MongoDB优点
MongoDB 的架构较少。它是一个文档数据库,它的一个集合持有不同的文档。
从一个到另一个的文档的数量,内容和大小可能有差异。
MongoDB 中单个对象的结构很清淅。
MongoDB 中没有复杂的连接。
MongoDB 提供深度查询的功能,因为它支持对文档的强大的动态查询。
MongoDB 很容易扩展。
它使用内部存储器来存储工作集,这是其快速访问的原因。
MongoDB的独特功能
使用方便
重量轻/轻量级
比RDBMS快得多
应该使用MongoDB在哪些场景
大而复杂的数据
移动和社会基础设施数据
内容管理和交付
用户数据管理
数据中心
从目前阿里云 MongoDB 云数据库上的用户看,MongoDB 的应用已经渗透到各个领域,比如游戏、物流、电商、内容管理、社交、物联网、视频直播等,以下是几个实际的应用案例。
游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新
物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。
社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能
物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析
视频直播,使用 MongoDB 存储用户信息、礼物信息等
MongoDB和RDBMS的性能分析
在关系数据库(RDBMS)中,表用作存储元素,而在 MongoDB 中使用的是集合。
在RDBMS中有多个模式,在每个模式中,可创建用于存储数据的表,而 MongoDB 是面向文档的数据库,数据是以类似JSON格式的BSON格式编写的存储的。
MongoDB几乎比传统数据库系统快100倍。