首页 > 代码库 > mongoDB学习笔记(一)

mongoDB学习笔记(一)

说明:  MongoDB由databases组成,database由collections组成,collection由documents组成,document由fileds组成。MongoDB是异步写数据。

第一章 环境配置


一、Mongodb简介

  • 功能特点
  • 适用范围

功能特点

官方网址:http://www.mongodb.org/   
MongoDB是一个基于分布式文件存储的数据库开源项目。由C++语言编写,旨在为WEB应用提供可护展的高性能数据存储解决方案。  
它的特点是可扩展,高性能,易使用,模式自由,存储数据非常方便等,主要功能特性有:  
面向文档存储:(类JSON数据模式简单而强大)。 
  1. 高效的传统存储方式:支持二进制数据及大型对象(如照片和视频)。
  2. 复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。
  3. Auto-Sharding自动分片支持云级扩展性(处于早期alpha阶段):自动分片功能支持水平的数据库集群,可动态添加额外的机器。
  4. 动态查询:它支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
  5. 全索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。
  6. 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。 

优缺点:

            mongodb作为一个很热门的nosql数据库有着比较多的优点,大概归纳为以下五点。

            (1)、无模式       

               mongodb是一个文档型存储的数据库,每一行数据都是一个文档,每一个文档中的字段可以不一致,个数也可以不相同,而且是一个以bson方式存储的文档。bson: short for Bin-ary JSON

           (2)、高性能      

              mongodb的高性能是怎么实现的呢?

              这个主要依靠2点来解决(当然还有很多其它的)。第一点是mongodb的存储空间是预先分配的。以64位机器为例,首先分配64m,以0填充,然后每次文件空间大小翻倍,直到2G,然后每次分配2G。预先分配的好处是不需要每次存储的时候都分配空间,加快了存储的效率。第二点是mongodb的内存映射机制。mongodb首先将数据写到内存,然后异步写道硬盘上(如果是非安全模式的话)。mongodb是不管理内存的,它将这份工作交给了操作系统。

           (3)、易扩展

                mongodb集群是很容易扩展的(添加删除节点简单),而且可以支持数据的分片。(后面的章节会详细的介绍怎么分片以及怎么扩展)

           (4)、易管理

                mongodb的管理几乎都是自动的。自动故障转移:当一个分片中的primary机器down后,其它机器会自动选举,选出一台机器当primary。自动负载均衡:当两个分片的数据相差很大时,集群会自动将一部分数据转移到数据少的分片上。

           (5)、多功能

                mongodb的功能很多,例如:索引,聚合,分布式的文件存储,js存储过程,GridFS文件存储,定容集合等。

 

优点说到这,mongodb同样也有着它的限制或缺点,主要是下面两点。

          (1)、mongodb占用存储空间大。

                这主要是由三个因素决定的。第一,mongodb的空间预分配方式,这样会让mongodb最多浪费不超过2G+2G文件大小的空间。第二,mongodb的字段名占用,即使是相同的字段,mongodb也会在每一个文档中都存储,这里会浪费极大的空间。第三,mongodb删除数据并不会释放空间,而只是将空间记录为删除状态以便重用。

          (2)、mongodb没有事务模式,所以事务要求严格的系统慎用。

适用范围

适用场景:

  1. 适合实时的插入,更新与查询,并具备应用程序实时数据存储所需的复制及高度伸缩性。
  2. 适合作为信息基础设施的持久化缓存层。
  3. 适合由数十或数百台服务器组成的数据库。因为Mongo已经包含对MapReduce引擎的内置支持。
  4. Mongo的BSON数据格式非常适合文档化格式的存储及查询。  

不适用场景:

  1.  高度事务性的系统。
  2.  传统的商业智能应用。
  3.  复杂的SQL查询。

 

二、Mongodb下载与安装

  • 下载地址
  • 安装步骤

下载地址

http://www.mongodb.org/downloads,选择相应的版本下载

 

安装步骤

  1. 在(C/D/E/F)盘新建文件夹MongoDB。
  2. 解压下载的文件,将bin目录拷贝到文件夹MongoDB。
  3. 在文件夹MongoDB下新建文件夹data,在文件夹data下新建文件夹db和log(db下放的是数据库文件,log下方的是windows日志,后面将讲解)。
  4. 执行命令:【mongod -auth --dbpath "E:\mongodb\data\db"】将mongodb的数据库文件创建到E:\mongodb\data\db 目录下,此时数据库就已启动。如图:

三、Mongodb服务管理

  • window服务注册
  • 服务开闭

window服务注册

注意:一定要以管理员的身份打开cmd。具体请参考官网说明http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/

使用命令【mongod --install --serviceName MongoDB --serviceDisplayName MongoDB --logpath E:\mongodb\data\log\mongodb.log --dbpath E:\MongoDB --directoryperdb】注册window服务。

服务开闭

使用命令【net stop mongodb】关闭mongodb服务。
使用命令【net start mongodb】启动mongodb服务。

mongoDB学习笔记(一)