Henrique Lobo Weissmann 是一位来自于巴西的软件开发者,他是 itexto 公司的联合创始人,这是一家咨询公司。近日,Henrique 在博客上撰文谈到了关于 MongoDB 的一些内容,其中有些观点值得我们,特别是正在和打算使用 MongoDB 的开发者关注。

  到目前为止,MongoDB 在巴西是最为流行的 NoSQL 数据库(至少根据关于 MongoDB 的博客数量以及文章所判断)。MongoDB 是个非常棒的解决方案,不过困扰我们的是很少有人了解过关于它的一些限制。这样的事情正在不断上演:人们看到 MongoDB 的限制,心里却认为这些是它的 Bug。

  本文列举了颇让作者困惑的一些 MongoDB 限制,如果你也打算使用 MongoDB,那么至少要提前了解这些限制,以免遇到的时候措手不及。

  消耗磁盘空间

这是我的第一个困惑:MongoDB 会消耗太多的磁盘空间了。当然了,这与它的编码方式有关,因为 MongoDB 会通过预分配大文件空间来避免磁盘碎片问题。它的工作方式是这样的:在创建数据库时,系统会创建一个名为[db name].0 的文件,当该文件有一半以上被使用时,系统会再次创建一个名为[db name].1 的文件,该文件的大小是方才的两倍。这个情况会持续不断的发生,因此 256、512、1024、2048 大小的文件会被写到磁盘上。最后,再次创建文件时大小都将为 2048Mb。如果存储空间是项目的一个限制,那么你必须要考虑这个情况。该问题有个商业解决方案,名字叫做 TokuMX,使用后存储消耗将会减少 90%。此外,从长远来看,repairDatabase 与 compact 命令也会在一定程度上帮到你。

  通过复制集实现的数据复制效果非常棒,不过也有限制

MongoDB 中数据复制的复制集策略非常棒,很容易配置并且使用起来确实不错。但如果集群的节点有 12 个以上,那么你就会遇到问题。MongoDB 中的复制集有 12 个节点的限制,这里是问题的描述,你可以追踪这个问题看看是否已经被解决了。

  主从复制不会确保高可用性

尽管已经不建议被使用了,不过 MongoDB 还是提供了另外一种复制策略,即主从复制。它解决了 12 个节点限制问题,不过却产生了新的问题:如果需要改变集群的主节点,那么你必须得手工完成,感到惊讶?看看这个链接吧。

  不要使用 32 位版本

MongoDB 的 32 位版本也是不建议被使用的,因为你只能处理 2GB 大小的数据。还记得第一个限制么?这是 MongoDB 关于该限制的说明。

  咨询费非常非常昂贵(至少对于巴西的开发者与公司来说如此)

我不清楚其他国家的情况,不过至少在巴西 MongoDB 的咨询费是个天价。对于“Lightning Consult”计划来说,每小时的价格是 450,00 美金,而你至少需要购买两个小时的,换句话说,对于任何一家公司来说,每次咨询的价格至少是 900,00 美金。相比于 RedHat 和 Oracle 来说,这个价格太高了。

  差劲的管理工具

这对于初学者来说依然是个让人头疼的问题,MongoDB 的管理控制台太差劲了。我所知道的最好的工具是 RoboMongo,它对于那些初次使用的开发者来说非常趁手。

  了解官方的限制

让我感到惊讶的是,很少有人会查询关于他们将要使用的工具的限制。幸好,MongoDB 的开发人员发布了一篇 MongoDB 所有限制的博客,你可以提前了解相关信息,避免在使用过程中难堪。

  各位读者,现在使用 MongoDB 的公司也越来越多了,不妨与大家分享你在使用这个 NoSQL 数据库时的一些经验与教训。

转载于:https://www.cnblogs.com/zjypp/p/3407922.html

转帖:关于MongoDB你需要知道的几件事相关推荐

  1. 大规模运行MongoDB应该知道的10件事

    MongoDB的首席解决方案架构师Asya Kamsky 最近发表了一篇文章,概括了大规模运行MongoDB需要知道的10件事. MongoDB也需要DevOps.MongoDB是一个数据库.和任何其 ...

  2. [转帖]一个华为哥们学习开发GSM的一些事

    转载于:[转帖]一个华为哥们学习&开发GSM的一些事 http://bbs.c114.net/thread-569654-1-1.html 我是无线研发的,对交付并不熟悉,只是根据直接的接触随 ...

  3. [转帖]GNU/Linux与开源文化的那些人和事

    GNU/Linux与开源文化的那些人和事 时间:2015-09-24   作者:admin 分类:新手入门 阅读:167次 http://embeddedlinux.org.cn/emb-linux/ ...

  4. mongodb 查询 mysql_MongoDB 基本查询使用

    刚才前面发了Windows下安装使用MongoDB数据库,觉得就这样多吊人胃口啊,所以就顺便把一些基本的查询方法写出来,供大家参考学习,如果写的有不对的地方还请多多批评. 我想看过前面写的" ...

  5. NoSQL代表: Mongo DB(芒果数据库) NoSQL代表: Mongo DB(芒果数据库)

    NoSQL代表: Mongo DB(芒果数据库) 分类:Mongo DB 2012-02-28 20:46 2768人阅读 评论(0) 收藏 举报 一.MongoDB简介 MongoDB是一个基于分布 ...

  6. NoSQL代表: Mongo DB(芒果数据库)

    一.MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案.其名字来自humongous这个单词的中间部分,从名字可见 ...

  7. MongoDB与Cassandra的比较

    我正在评估什么是最好的迁移选项. 目前,我在分片的MySQL(水平分区)上,我的大部分数据存储在JSON Blob中. 我没有任何复杂的SQL查询(自从对数据库进行分区以来,已经迁移了). 现在,似乎 ...

  8. 敲山震虎?继MongoDB之后,AWS又对Elasticsearch下手了

    本周一AWS宣布与Expedia Group和Netflix合作推出开源软件项目Open Distro for Elasticsearch. Elasticsearch是由Elastic创建的开源软件 ...

  9. MongoDB应用篇(转)

    一.高级查询 1. 查询操作符 1.1 比较操作符$gt,$lt,$gte,$lte 实例: select * from things where field<value -- 等价于db.th ...

最新文章

  1. HTML5代码基础结构
  2. centos7 locale 区域语言设置
  3. c语言银行每月额外存款100,C语言课程设计_银行存取款业务.doc
  4. JUC重要辅助类(同步组件及锁)
  5. SAP CRM IBASE structure的读取逻辑
  6. vue项目开发实战案例_Vue、Spring Boot开发小而完整的Web前后端分离项目实战02
  7. BZOJ1835: [ZJOI2010]base 基站选址(线段树优化Dp)
  8. ActiveRecord.JS 与 Google Gears
  9. jquery几种常用框架比较
  10. 在线画图工具ProcessOn
  11. 计算机应用工程师如何评定,个人如何申请工程师职称评定
  12. 单片机复位电路是怎么工作的?
  13. Removing-Camera-Shake-from-a-Single-Photograph图像去模糊读书笔记
  14. 解决方案│POL全光校园解决方案 光纤到教室解决方案 光纤到宿舍解决方案
  15. 【C++探索之旅】第一部分第八课:传值引用,文件源头
  16. 德艺双修才貌双全 史上16位青楼佳人 迷住宋徽宗的李师师
  17. 奔腾g2030主机安装黑群晖DSM6.1.7
  18. Archive of Our Own_影视 | 怪兽大战外星人外传:活死人萝卜之夜 Night.of.the.Living.Carrots...
  19. 新程序员001:开发者黄金十年
  20. 关于涉密信息系统分级保护的几个问题

热门文章

  1. 回发或回调参数无效。下拉菜单中使用ajax,联动菜单引起的问题解决方案
  2. 网络中最常用的网络命令(2)-完整参数
  3. 1月4日链接篇:ASP.NET, ASP.NET AJAX, ASP.NET MVC, Visual Studio, IIS7
  4. VS新建工程或者新建项时 出现未定义标识符号
  5. 深圳Uber优步司机奖励政策(12月28日到1月3日)
  6. SCSM 2012Orchestrator 2012 虚拟机自动交付测试
  7. System.Timers.Timer 多线程问题[转]
  8. WPF里ItemsControl的分组实现
  9. java 中文乱码问题,请注意response.getWriter的顺序
  10. web项目开启日志打印