MongoDB简介

发布时间:2018-04-11

一、简介

MongoDB是基于文档存储的(而非表),是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。模式自由(schema-free),意味着对于存储在MongoDB数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

Mongo主要解决的是海量数据的访问效率问题。因为Mongo主要是支持海量数据存储的,所以Mongo还自带了一个出色的分布式文件系统GridFS,可以支持海量的数据存储。由于Mongo可以支持复杂的数据结构,而且带有强大的数据查询功能,因此非常受到欢迎。

二、适用场景

1、网站数据:适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。

2、缓存:由于性能很高,也适合作为信息基础设施的缓存层。在系统重启之后,搭建的持久化缓存可以避免下层的数据源过载。   

3、大尺寸、低价值的数据:使用传统的关系数据库存储一些数据时可能会比较贵,在此之前,很多程序员往往会选择传统的文件进行存储。

4、高伸缩性的场景:非常适合由数十或者数百台服务器组成的数据库。

5、用于对象及JSON数据的存储:MongoDB的BSON数据格式非常适合文档格式化的存储及查询。

三、应用案例

1、京东,中国著名电商,使用MongoDB存储商品信息,支持比价和关注功能

2、赶集网,中国著名分类信息网站,使用MongoDB记录pv浏览计数

3、奇虎360,著名病毒软件防护和移动应用平台,使用MongoBD支撑的HULK平台每天接受200亿次的查询

4、百度云,使用MongoDB管理百度云盘中500亿条关于文件源信息的记录.

5、CERN,著名的粒子物理研究所,欧洲核子研究中心大型强子对撞机的数据使用MongoDB

6、纽约时报,领先的在线新闻门户网站之一,使用MongoDB

7、sourceforge.net,资源网站查找,创建和发布开源软件免费,使用MongoDB的后端存储

四、不适合场景

1、高度事物性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。

2、传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。

3、需要SQL的问题