mongodb系列之选型篇

说到选型,肯定避免不了几个问题,优缺点,适用场合,上手容易度,技术的成熟度,社区的活跃度等。下面就这几个问题简单说说。

1、优缺点:

            mongodb作为一个很热门的nosql数据库有着比较多的优点,大概归纳为以下五点。

            (1)、无模式       

                        mongodb是一个文档型存储的数据库,每一行数据都是一个文档,每一个文档中的字段可以不一致,个数也可以不相同,而且是一个以bson方式存储的文档。bson: short for Bin­ary JSON

           (2)、高性能      

              mongodb的高性能是怎么实现的呢?

              这个主要依靠2点来解决(当然还有很多其它的)。第一点是mongodb的存储空间是预先分配的。以64位机器为例,首先分配64m,以0填充,然后每次文件空间大小翻倍,直到2G,然后每次分配2G。预先分配的好处是不需要每次存储的时候都分配空间,加快了存储的效率。第二点是mongodb的内存映射机制。mongodb首先将数据写到内存,然后异步写道硬盘上(如果是非安全模式的话)。mongodb是不管理内存的,它将这份工作交给了操作系统。

           (3)、易扩展

                mongodb集群是很容易扩展的(添加删除节点简单),而且可以支持数据的分片。(后面的章节会详细的介绍怎么分片以及怎么扩展)

           (4)、易管理

                mongodb的管理几乎都是自动的。自动故障转移:当一个分片中的primary机器down后,其它机器会自动选举,选出一台机器当primary。自动负载均衡:当两个分片的数据相差很大时,集群会自动将一部分数据转移到数据少的分片上。

           (5)、多功能

                mongodb的功能很多,例如:索引,聚合,分布式的文件存储,js存储过程,GridFS文件存储,定容集合等。

优点说到这,mongodb同样也有着它的限制或缺点,主要是下面两点。

          (1)、mongodb占用存储空间大。

                这主要是由三个因素决定的。第一,mongodb的空间预分配方式,这样会让mongodb最多浪费不超过2G+2G文件大小的空间。第二,mongodb的字段名占用,即使是相同的字段,mongodb也会在每一个文档中都存储,这里会浪费极大的空间。第三,mongodb删除数据并不会释放空间,而只是将空间记录为删除状态以便重用。

          (2)、mongodb没有事务模式,所以事务要求严格的系统慎用。


mongodb的优缺点都大概了解了,那么来说说mongodb的适用场景。

2、适用场合

        根据前面说的优点,可以发现mongodb的一些适用场景,以下仅举例。

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

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

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


3、上手容易度

        mongodb有着单机,主备,集群三种工作方式。这三种模式的配置都可以在网上简单的找到。

4、技术的成熟度

        mongodb是2009年2月由10gen推出的,到现在为止已经发布了几十个版本。同样也有着很多著名的公司包括SourceForge,ebay等在使用,详情请http://www.mongodb.org/display/DOCS/Production+Deployments

5、社区的活跃度

       10gen,mongodb官方网,nosqlfun上面有很多很好的文章,也可以向上面的大牛请教自己的问题。

       mongodb的facebook区有很多人讨论,在iteye上也有很多的帖子。mongodb的google group里的成员回答问题非常热情。还有很多类似的论坛博客之类的。




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值