hi,mongo!(1)
用了很多年的关系型数据库,想换一种思路,学习一下最近比较火的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)的更多相关文章
- 谈一谈NOSQL的应用,Redis/Mongo
1.心路历程 上年11月份来公司了,和另外一个同事一起,做了公司一个移动项目的微信公众号,然后为了推广微信公众号,策划那边需要我们做一些活动,包括抽奖,投票.最开始是没有用过redis的,公司因为考虑 ...
- MongoDB分组汇总操作,及Spring data mongo的实现
转载请在页首注明作者与出处 一:分组汇总 1.1:SQL样例 分组汇总的应用场景非常多,比如查询每个班级的总分是多少,如果用关系形数据库,那么sql是这样子的 ),class from score g ...
- mongo DB for C#
(1)Download the MongoDB C#驱动. http://www.nuget.org/packages/mongocsharpdriver/. (2) Add Reference to ...
- Mongo基础使用,以及在Express项目中使用Mongoose
MongoDB的基本使用 MongoDB特点: 使用BSON存储数据 支持相对丰富的查询操作(相对其他nosql数据库) 支持索引 副本集(支持多个实例/多个服务器运行同个数据库) 分片(数据库水平扩 ...
- 【mongo】mongoVUE使用
1.查询存在字段"test"的项 {"test":{$exists:true}} 2.在表中插入字段 {$set:{"}} 3.正则匹配 {" ...
- mongo遍历表
$mongo = new MongoClient("mongodb://192.168.8.189:27017"); $collectObj = $mongo->select ...
- python & mongo问题记录
背景介绍 使用python操作mongo进行的一些操作记录,为了方便日后可以快速的解决类似问题. 准备工作 为了尽可能简单的说明,我将插入几条简单的数据. from pymongo import Mo ...
- Lind.DDD.Repositories.Mongo层介绍
回到目录 之前已经发生了 大叔之前讲过被仓储化了的Mongodb,而在大叔开发了Lind.DDD之后,决定把这个东西再搬到本框架的仓储层来,这也是大势所趋的,毕竟mongodb是最像关系数据库的NoS ...
- MongoDB基础入门003--使用官方驱动操作mongo,C#
本篇先简单介绍一下,使用官方驱动来操作MongoDB.至于MongoDB原生的增删改查语句,且等以后再慢慢学习. 一.操作MongoDB的驱动主要有两个 1.官方驱动:https://github.c ...
- mongo DB的一般操作
最近接触了一些mongoDB .将一些指令操作记录下来,便于查询和使用 登录 [root@logs ~]# mongo -u loguser -p log123456 --authentication ...
随机推荐
- weak 弱引用的实现方式
来源:冬瓜争做全栈瓜 链接:https://desgard.com/weak/ 对于 runtime 的分析还有很长的路,最近在写 block 系列的同时,也回顾一下之前疏漏的细节知识.这篇文章是关于 ...
- 1.7.7 Spell Checking -拼写检查
1. SpellCheck SpellCheck组件设计的目的是基于其他,相似,terms来提供内联查询建议.这些建议的依据可以是solr字段中的terms,外部可以创建文本文件, 或者其实lucen ...
- JQuery POST请求乱码...
引言: 在JQuery的Ajax POST请求中,进行请求,其中的中文在后台,显示为乱码,该如何解决呢? 问题的引入: var regid = $('#oregion').combobox('getV ...
- 解决SecureCRT中文显示乱码
操作步骤 以下两步: 远程linux机器.修改环境变量LANG.例如在~/.bash_profile里面添加 export LANG=zh_CN.UTF8 重新登录之后生效. 现在查看一下当前设置: ...
- ios 代码截屏模糊问题解决办法
我们常用的截图方法如下所示: //尺寸是按照 UIGraphicsBeginImageContext(CGSizeMake(, )); //currentView 当前的view 创建一个基于位图的图 ...
- linux_memcached_memcachedb
三个区别 当你听到memcache与memcached时把它当做是一个东东就好了,尽管它们存在区别,但是这并不影响你对它们的运用及理解. “Memcache”它是一个自由和开放源代码.高性能.分配的内 ...
- Lnmp下安装memcached
Lnmp下安装memcached 1.先安装 libevent,再安装 Memcached主程序 # tar xf libevent-2.0.21-stable.tar.gz # cd ...
- Macbook之安装opencv
link:http://www.mobileway.net/2015/02/14/install-opencv-for-python-on-mac-os-x/
- IntelliJ IDEA 中集成使用git(2015年06月10日)
前提:需要有一个git账号,https://github.com/ 1.首先需要下载一个Github,https://windows.github.com 安装之后的界面是酱紫的,非常简洁美观 2.在 ...
- 会话—session
这篇随笔是上一篇的姊妹篇@_@! session 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下) ...