转帖:关于MongoDB你需要知道的几件事
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你需要知道的几件事相关推荐
- 大规模运行MongoDB应该知道的10件事
MongoDB的首席解决方案架构师Asya Kamsky 最近发表了一篇文章,概括了大规模运行MongoDB需要知道的10件事. MongoDB也需要DevOps.MongoDB是一个数据库.和任何其 ...
- [转帖]一个华为哥们学习开发GSM的一些事
转载于:[转帖]一个华为哥们学习&开发GSM的一些事 http://bbs.c114.net/thread-569654-1-1.html 我是无线研发的,对交付并不熟悉,只是根据直接的接触随 ...
- [转帖]GNU/Linux与开源文化的那些人和事
GNU/Linux与开源文化的那些人和事 时间:2015-09-24 作者:admin 分类:新手入门 阅读:167次 http://embeddedlinux.org.cn/emb-linux/ ...
- mongodb 查询 mysql_MongoDB 基本查询使用
刚才前面发了Windows下安装使用MongoDB数据库,觉得就这样多吊人胃口啊,所以就顺便把一些基本的查询方法写出来,供大家参考学习,如果写的有不对的地方还请多多批评. 我想看过前面写的" ...
- NoSQL代表: Mongo DB(芒果数据库)
NoSQL代表: Mongo DB(芒果数据库)
NoSQL代表: Mongo DB(芒果数据库) 分类:Mongo DB 2012-02-28 20:46 2768人阅读 评论(0) 收藏 举报 一.MongoDB简介 MongoDB是一个基于分布 ...
- NoSQL代表: Mongo DB(芒果数据库)
一.MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案.其名字来自humongous这个单词的中间部分,从名字可见 ...
- MongoDB与Cassandra的比较
我正在评估什么是最好的迁移选项. 目前,我在分片的MySQL(水平分区)上,我的大部分数据存储在JSON Blob中. 我没有任何复杂的SQL查询(自从对数据库进行分区以来,已经迁移了). 现在,似乎 ...
- 敲山震虎?继MongoDB之后,AWS又对Elasticsearch下手了
本周一AWS宣布与Expedia Group和Netflix合作推出开源软件项目Open Distro for Elasticsearch. Elasticsearch是由Elastic创建的开源软件 ...
- MongoDB应用篇(转)
一.高级查询 1. 查询操作符 1.1 比较操作符$gt,$lt,$gte,$lte 实例: select * from things where field<value -- 等价于db.th ...
最新文章
- HTML5代码基础结构
- centos7 locale 区域语言设置
- c语言银行每月额外存款100,C语言课程设计_银行存取款业务.doc
- JUC重要辅助类(同步组件及锁)
- SAP CRM IBASE structure的读取逻辑
- vue项目开发实战案例_Vue、Spring Boot开发小而完整的Web前后端分离项目实战02
- BZOJ1835: [ZJOI2010]base 基站选址(线段树优化Dp)
- ActiveRecord.JS 与 Google Gears
- jquery几种常用框架比较
- 在线画图工具ProcessOn
- 计算机应用工程师如何评定,个人如何申请工程师职称评定
- 单片机复位电路是怎么工作的?
- Removing-Camera-Shake-from-a-Single-Photograph图像去模糊读书笔记
- 解决方案│POL全光校园解决方案 光纤到教室解决方案 光纤到宿舍解决方案
- 【C++探索之旅】第一部分第八课:传值引用,文件源头
- 德艺双修才貌双全 史上16位青楼佳人 迷住宋徽宗的李师师
- 奔腾g2030主机安装黑群晖DSM6.1.7
- Archive of Our Own_影视 | 怪兽大战外星人外传:活死人萝卜之夜 Night.of.the.Living.Carrots...
- 新程序员001:开发者黄金十年
- 关于涉密信息系统分级保护的几个问题
热门文章
- 回发或回调参数无效。下拉菜单中使用ajax,联动菜单引起的问题解决方案
- 网络中最常用的网络命令(2)-完整参数
- 1月4日链接篇:ASP.NET, ASP.NET AJAX, ASP.NET MVC, Visual Studio, IIS7
- VS新建工程或者新建项时 出现未定义标识符号
- 深圳Uber优步司机奖励政策(12月28日到1月3日)
- SCSM 2012Orchestrator 2012 虚拟机自动交付测试
- System.Timers.Timer 多线程问题[转]
- WPF里ItemsControl的分组实现
- java 中文乱码问题,请注意response.getWriter的顺序
- web项目开启日志打印