日期:2014-05-16 浏览次数:20374 次
公司最近一个项目使用了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)高事务性系统
?
待续