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 ...
随机推荐
- SQL SERVER – Count Duplicate Records – Rows
SELECT YourColumn, COUNT(*) TotalCount FROM YourTable GROUP BY YourColumn HAVING COUNT(*) > 1 ORD ...
- Java SE ---流程控制语句
java的控制流程有三种: 一,顺序流程 自上而下,按照代码的先后顺序执行 二,分支流程 1,if/else语句 2,swit ...
- 【原创】利用C++ RAII技术自动回收堆内存
[说明]这篇文章本来发布在我个人网站的博客上,但由于:1,打算以cnblogs为家了:2. 关于智能指针部分需要修订,所有将修订版发在这里,作为第一篇文章. 常遇到的动态内存回收问题 在C++的编程过 ...
- angularJs中上传图片/文件功能:ng-file-upload
原文技术交流:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/angularjs-ng-file-upload/ 在做网站的过程中难 ...
- 51nod 数数字(水题)
题目链接: 数数字 基准时间限制:1 秒 空间限制:262144 KB 统计一下 aaa ⋯ aaa n个a × b 的结果里面有多少个数字d,a,b,d均为一位数. 样例解释: 3333333333 ...
- poj 3378 二维树状数组
思路:直接用long long 保存会WA.用下高精度加法就行了. #include<map> #include<set> #include<cmath> #inc ...
- BZOJ 1040: [ZJOI2008]骑士 基环加外向树
1040: [ZJOI2008]骑士 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1190 Solved: 465[Submit][Status] ...
- 洛谷P1717 钓鱼
P1717 钓鱼 41通过 116提交 题目提供者该用户不存在 标签贪心 难度提高+/省选- 提交该题 讨论 题解 记录 最新讨论 暂时没有讨论 题目描述 话说发源于小朋友精心设计的游戏被电脑组的童鞋 ...
- GridViewWIthSubActivityDemo
GridViewWIthSubActivityDemo 拥有一个sub-activity的GridView示例: 显示一系列图片,点击其中之一的话,在新的sub-activity中放大显示. Imag ...
- c#中进程的使用
C#的Process类的一些用法 更多0 c# 进程 c#之process类相关整理 一.根据进程名获取进程的用户名? 需要添加对 System.Management.dll 的引用 usin ...