(转)关于MongoDB你需要知道的几件事

本文列举了颇让作者困惑的一些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美金,而你至少需要购买两个小时的,换句话说,对于任何一家公司来说,每次咨询的价格至少是900美金。相比于RedHat和Oracle来说,这个价格太高了。

差劲的管理工具

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

了解官方的限制

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

转自

http://www.infoq.com/cn/news/2013/11/mongodb-things

时间: 2024-12-29 11:40:31

(转)关于MongoDB你需要知道的几件事的相关文章

打算用mongodb mapreduce之前一定要知道的事!!!

mapreduce其实是分批处理数据的,每一百次重新reduce处理,所以到reduce里的数据如果是101条,那就会分2次进入. 这导致的问题就是在reduce中 如果 初始化 var count = 0:在循环中 count ++,最后输出的是1??? 避免都方法是,把数据存在返回的value里,这个value是会在循环进入reduce的时候重用的.在循环中 count  += value.count就能把之前都100加上了!!! 还有如果只有一条数据,那它不会进入reduce,会直接返回.

MONGODB全面总结

关于Mongodb的全面总结,学习mongodb的人,可以从这里开始! 分类:            MongoDB2013-06-08 09:5610213人阅读评论(0)收藏举报 目录(?)[+] BSON 效率 传输性 性能 写入协议 数据文件 名字空间和盘区 内存映射存储引擎 其他 MongoDB的架构 MongoDB的特点 MongoDB的功能 MongoDB的局限性与不足 适用范围 MongoDB的不适用范围 要点 MongoDB分布式复制 MongoDB语法与现有关系型数据库SQL

温故而知新(1) -- chrome书签整理

话说温故而知新,但是我发现,新的旧的都没有巩固的很好,所以我决定先把所有的网页标签都温故一下! 1.揭开Javascript属性constructor/prototype的底层原理 http://blog.csdn.net/hikvision_java_gyh/article/details/8937157 2.http://www.cnblogs.com/phpmix/articles/1734031.html Javascript中this.prototype.constructor的理解

MongoDB迁移方案-冷备份+增量备份恢复

QQ群:465614686 1.  环境构建步骤 (1)线上环境 都是副本集模式 3个业务访问节点+1个隐藏节点 (隐藏节点做hadoop.spark数据同步使用以及数据报表查询等) (2)主机以及配置说明 10.21.18.21  primary节点    优先级为100 10.21.18.22  secondary节点  优先级为90 10.21.18.23  secondary节点  优先级为80 10.21.18.24  隐藏节点       优先级为0 系统配置:128G内存,64Co

MongoDB资料汇总(转)

原文:MongoDB资料汇总 上一篇Redis资料汇总专题很受大家欢迎,这里将MongoDB的系列资料也进行了简单整理.希望能对大家有用. 最后更新时间:2013-04-22 1.MongoDB是什么 MongoDB介绍PPT分享 MongoDB GridFS介绍PPT两则 初识 MongoDB GridFS MongoDB GridFS 介绍 一个NoSQL与MongoDB的介绍PPT MongoDB:下一代MySQL? 写给Python程序员的MongoDB介绍 又一篇给Python程序员的

软件公司为何要放弃MongoDB?

本文转至:http://database.51cto.com/art/201503/469510_all.htm(只作转载, 不代表本站和博主同意文中观点或证实文中信息) Olery成立于2010年,总部位于阿姆斯特丹.该初创公司为酒店行业提供声誉管理与媒体监控工具,帮助酒店将网络评论和社交媒体反馈转化成可执行的商业智能分析. Olery成立最初是使用MySQL来存储(用户.合同等等)核心数据,用MongoDB来存储评论及其类似的数据(即哪些在数据丢失的情况下很容易恢复的数据).一开始,这样的安

MongoDB随笔基本操作

一.MongoDB数据结构与关系型数据库比较 逻辑结构对比MongoDB              关系型数据库文档(document)        行(row)集合(collection)         表(table)数据库(database)    数据库(database) 二.mongod 参数说明最简单的,通过执行 mongod 即可以启动 MongoDB 数据库服务,mongod 支持很多的参数,但都有默认值,其中最重要的是需要指定数据文件路径,或者确保默认的/data/db

在Python应用中使用MongoDB

Python是开发社区中用于许多不同类型应用的强大编程语言.很多人都知道它是可以处理几乎任何任务的灵活语言.因此,在Python应用中需要一个什么样的与语言本身一样灵活的数据库呢?那就是NoSQL,比如MongoDB. 英文原文:https://realpython.com/blog/python/introduction-to-mongodb-and-python 1.SQL vs NoSQL 如果你不是很熟悉NoSQL这个概念,MongoDB就是一个NoSQL数据库.近几年来它越来越受到整个

使用Backbone.js, ExpressJS, node.js, MongoDB的web应用样板工程

这是web应用的一个完整的样板工程,用到了Backbone.js & Marionette, node.js & ExpressJS,MongoDB & Moogoose, Handlebars, Grunt.js, Bower和Browserify! 我建立了一个超级基础的单页面应用程序(SPA),就是一个简单的通讯录管理器, 但麻雀虽小,五脏俱全.我写这篇文章的目的是介绍一下这个应用所用到的整个技术栈:后端,数据,前端,工具和测试.主要包括下面这些技术: 后端: node.js