用了很多年的关系型数据库,想换一种思路,学习一下最近比较火的mongo数据库。

一、下载、安装mongo

  下载地址:http://www.mongodb.org/downloads(官网)

  官网的mongo有很多版本,建议选择64bit版本,能够支持更大的数据存储,而32bit仅仅支持最大2G的文件。具体原因请参看下文“mongo数据库内存管理方式”

  安装的过程也非常简单,基本流程为:解压下载的文件-->建立数据库目录和日志目录-->安装相应服务-->连接mongo。

  本文以windows平台下的安装为例:

  1)解压mongoxxxxx.zip到指定目录 如e:\

  2)建立数据库目录和日志目录 >e:\mongodb\db   >e:\mongodb\logs

  3)启动mongodb,安装服务:>cd e:\mongodb\bin

    >mongod --dbpath=e:\mongodb\db --logpath=e:\mongodb\logs\mongodb.log --install

    >net start mongodb

  4)连接mongod:>mongo

二、mongo数据库内存管理方式

  mongod服务启动时,载入相应的文件到物理内存,把内存管理交给系统,如果数据量庞大,那么启动会很慢。mongod机制使用MMAP映射文件到虚拟内存,并映射虚拟内存到实际的物理内存,以linux系统为例,32bit 内存上限为 4G-1G(内核占用)-0.5堆栈 =2.5,即32位系统的内存可寻址上限是2.5G。所以32位系统mongod的单数据库文件上限为2G,64bit 内存上限为12T,所以mongodb的单数据库上限也相应的增加。 

  mongo物理文件被分成相应的块,每个块之间使用双向链表来连接。内存按照16M,32M,64M…2G递增方式进行分配,会预留相应的内存空间,这是mongod会大量消耗内存的原因,即使一条记录,也会占用16M的内存空间。新加入的数据,看是否有适合的空闲内存块可以分配,如果没有则增加新的数据块,Mongodb需要定期来进行数据压缩,以释放掉相应的空闲内存,移动相应数据,把内存碎片整理成完整的内存块,以便于进行重新分配。

三、客户端工具

  本文用的是MongoVUE,下载地址:http://blog.mongovue.com/

  由于MongoVUE并不是完全免费版本,需要破解,在网上找了一个很好的教程,请参考:http://yhv5.com/mongovue_480.html

  在启动mongod服务后打开MongoVUE,会看到如下的界面

    

  点击绿色按钮“creat new connection”,mongo默认的端口是27017,点击save,然后connect,这样就新建了一个名为local的数据库。

  

hi,mongo!(1)的更多相关文章

  1. 谈一谈NOSQL的应用,Redis/Mongo

    1.心路历程 上年11月份来公司了,和另外一个同事一起,做了公司一个移动项目的微信公众号,然后为了推广微信公众号,策划那边需要我们做一些活动,包括抽奖,投票.最开始是没有用过redis的,公司因为考虑 ...

  2. MongoDB分组汇总操作,及Spring data mongo的实现

    转载请在页首注明作者与出处 一:分组汇总 1.1:SQL样例 分组汇总的应用场景非常多,比如查询每个班级的总分是多少,如果用关系形数据库,那么sql是这样子的 ),class from score g ...

  3. mongo DB for C#

    (1)Download the MongoDB C#驱动. http://www.nuget.org/packages/mongocsharpdriver/. (2) Add Reference to ...

  4. Mongo基础使用,以及在Express项目中使用Mongoose

    MongoDB的基本使用 MongoDB特点: 使用BSON存储数据 支持相对丰富的查询操作(相对其他nosql数据库) 支持索引 副本集(支持多个实例/多个服务器运行同个数据库) 分片(数据库水平扩 ...

  5. 【mongo】mongoVUE使用

    1.查询存在字段"test"的项 {"test":{$exists:true}} 2.在表中插入字段 {$set:{"}} 3.正则匹配 {" ...

  6. mongo遍历表

    $mongo = new MongoClient("mongodb://192.168.8.189:27017"); $collectObj = $mongo->select ...

  7. python & mongo问题记录

    背景介绍 使用python操作mongo进行的一些操作记录,为了方便日后可以快速的解决类似问题. 准备工作 为了尽可能简单的说明,我将插入几条简单的数据. from pymongo import Mo ...

  8. Lind.DDD.Repositories.Mongo层介绍

    回到目录 之前已经发生了 大叔之前讲过被仓储化了的Mongodb,而在大叔开发了Lind.DDD之后,决定把这个东西再搬到本框架的仓储层来,这也是大势所趋的,毕竟mongodb是最像关系数据库的NoS ...

  9. MongoDB基础入门003--使用官方驱动操作mongo,C#

    本篇先简单介绍一下,使用官方驱动来操作MongoDB.至于MongoDB原生的增删改查语句,且等以后再慢慢学习. 一.操作MongoDB的驱动主要有两个 1.官方驱动:https://github.c ...

  10. mongo DB的一般操作

    最近接触了一些mongoDB .将一些指令操作记录下来,便于查询和使用 登录 [root@logs ~]# mongo -u loguser -p log123456 --authentication ...

随机推荐

  1. View Controller 视图管理总结

    View controller是iOS中顶层的视图载体和控制器,它需要对view负责,管理view的生命周期,相关处室话以及交互事件,除此以外还需要为view提供合适的数据,以供view使用. Vie ...

  2. 在提交SVN时有时候会报svn is already locked 错误

    svn is already locked 解决方案: 如题所述经常在更新代码的时候会产生这样的问题!并且在对应的目录上操作Clean Up 没有任何的效果!如下解决方法. 在出错文件夹下,鼠标右键T ...

  3. FVDI Commander products be replaced SVDI tools,really?

    You may have heard that some FVDI Commander products are being replaced by the new SVDI tools. This ...

  4. Oracle 经典语法(五)

    1. 哪些部门的人数比20 号部门的人数多.SELECT DEPTNO,COUNT(*) FROM EMP     GROUP BY DEPTNO      HAVING COUNT(*) >  ...

  5. Android的Task和Activity相关

    android:allowTaskReparenting    用来标记Activity能否从启动的Task移动到有着affinity的Task(当这个Task进入到前台时)——“true”,表示能移 ...

  6. Amazon教程:刚买就降价!避免损失,申请PRICE MATCH(价格保护)的方法

    Amazon的商品价格波动频繁,虽然老白通常都在价格较低的时机向大家推荐,但是经常有降了又降的情况,刚下的单还没到手就又降价了,这种滋味肯定不好受.Amazon客服明确告诉老白一周内降价都可以申请PR ...

  7. 关于如何用sql语句查询出连续的一串数字

    在数据库操作中,经常有一些这样的操作:插入诺干条测试数据.查询这个月的登录情况(没有登录的日期不能不存在,要显示数量为0),获取诺干条guid. 这些的基础都是怎么生成连续的一串数字  1 2  3  ...

  8. Frameset使用教程 小结

    frame,是网页开发必须掌握的知识.例如后台架构.局部刷新,页面分割,都是frame的用途表现,尤其是后台页面制作,使用frame会给用户带来非常舒适的使用感受. frame知识点包括(frames ...

  9. [转]Webservice client timeout

    本文转自:http://social.msdn.microsoft.com/Forums/vstudio/en-us/ed89ae3c-e5f8-401b-bcc7-333579a9f0fe/webs ...

  10. Linux后台运行

    关于linux后台 ctrl + z jobs -l fg %jobnumber 后台调前台 bg %jobnumber 后台暂停--后台运行 kill pid ps -aux | grep &quo ...