用了很多年的关系型数据库,想换一种思路,学习一下最近比较火的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的数据库。