MongoDB 介绍

MongoDB 是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB服务端可运行在Linux、Windows或IOS平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB,64位平台则非常大。

 

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富,最像关系数据库的。

Mongo 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

 

mongodb中有三种元素:数据库(database),集合(collection),文档(document),其中“集合” 对应关系数据库中的“表”,“文档”对应关系数据库的“行”。

mongoDB 是文档数据库, 面向集合(collection)的数据库。

集合可以看作没有模式的表。

文档可以是MongoDB的核心概念。文档可以是任意的数据结构形式。

 

一个mongoDB 实例支持多个数据库(database)。

mongoDB自带简洁但功能强大的Javascript Shell。

存储的数据是K-V的组合,值可以是数据类型集合里的任意类型,包括数组和文档,这个数据格式称为BSON,即“Binary Serialized dOcument Notation”(二进制序列化文档)

 

文档(document)、集合(collection)、数据库(database)的层次结构如下图:



 

1) 特点:高性能、易部署、易使用,存储数据非常方便。

2) 功能

    面向集合存储,易存储对象类型的数据;

    支持动态查询,支持完全索引,包含内部对象;

    支持复制和故障恢复;

    使用高效的二进制数据存储,包括大型对象(如视频等);

    自动处理碎片,以支持云计算层次的扩展性。

3) 数据格式:支持的数据结构非常松散,是类似json的bson格式,可以存储比较复杂的数据类型。

 

MongoDB与关系型数据库逻辑结构的对比

 


 

 

MongoDB 适用场景
       网站数据: MongoDB 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
       缓存: 由于性能很高,MongoDB也适合作为信息基础设施的缓存层。在系统重启之后, 由MongoDB搭建的持久化缓存层可以避免下层的数据源过载。
       大尺寸,低价值的数据: 使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。
       高伸缩性的场景: MongoDB非常适合由数十或数百台服务器组成的数据库。MongoDB 的路线图中已经包含对MapReduce引擎的内置支持。
       用于对象及JSON数据的存储: MongoDB的BSON数据格式非常适合文档化格式的存储及查询。

 

       综上所述, MongoDB适合的应用场景:

       1.大数据量查询和汇总。

       2.分布式部署,和水平扩展。

       MongoDB适合用于数据统计汇总,做业务数据库,替代Mysql。

       3.   位置附近搜索服务。

 

不适用场景:

        高度事务性的系统。

        传统的商业智能应用。

        极为复杂的SQL查询。

 

猜你喜欢

转载自geeksun.iteye.com/blog/2227141