日期:2014-05-16  浏览次数:20341 次

一、初识mongodb

公司最近一个项目使用了mongodb,把一些有关知识做一下笔记整理,由于个人水平所限,有错误或不足请直接提出,我会进行修改

?

一:为什么使用mongodb?

mongodb作为no-sql的一个典型代表有着自己的优点

1、无模式:面向文档,以bson形式存储

?

2、高性能:空间预分配(以64位机为例,数据文件从64M开始,每次翻倍,直到达到2G为止,以后每次分配2G),内存映射机制(mongodb使用操作系统的mmap内存映射机制,并且将内存管理工作交给操作系统。所以不能控制占用内存的大小,如果数据+索引大于内存时,也不能限制虚拟内存大小),无事务,无join

?

3、易扩展:可以存储海量数据,支持数据分片

?

4、易管理:动态集群(添加删除节点简单),自动故障转移(Replica Sets),自动负载均衡

?

5、多功能:支持索引,聚合,定容集合(oplog,有大小限制,不能手动删除,FIFO),分布式文件存储,js存储过程,GridFS

?

缺点:

1、无事务,不能使用在银行系统中。

?

2、占用空间过大(空间预分配,字段名占用,删除记录不释放空间)

?

基于mongodb的特点,mongodb适用场合:

(1)、存储大尺寸,低价值数据

(2)、高伸缩性场景,mongodb的集群添加删除结点简单

(3)、网站数据,实时性的插入更新查询

?

不适用场景:

(1)需要存储和使用高精度数据场合,如银行系统

(2)高事务性系统

?

待续