【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

  • 2013-11-04
  • 本文字数:1313 字

    阅读完需:约 4 分钟

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

差劲的管理工具

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

了解官方的限制

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

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

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2013-11-04 12:4317863
用户头像

发布了 88 篇内容, 共 258.7 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

首个区块链金融应用规范出炉,标准先行避免“先污染后治理”

CECBC

技术规范 应用评估规则 话语权 政府积极推进

ARTS Week9

时之虫

ARTS 打卡计划

数据结构和算法-链表

jason

登门槛效应 - 请求帮忙,从小事开始。

石云升

登门槛效应 得寸进尺效应

Android | xml和view的那些事

哈利迪

android

第八周学习总结

qihuajun

ARTS 打卡(2020.07.13-2020.07.19)

小王同学

架构师课程第八周 作业

杉松壁

JVM系列之:String.intern和stringTable

程序那些事

Java JVM GC 常量池 字符串

Java有效面试题

老大哥

面试

8week

一叶知秋

【架构师训练营 - 作业 -8】

小动物

架构师训练营第八周课后题

Cloud.

关于架构的几件小事:架构决策

北风

架构 架构设计 架构师 架构设计原则

两个单向链表是否存在合并元素

周冬辉

一个成都程序猿眼中的成都和天府软件园,先从蚂蚁金服说起…

why技术

程序员 成都 蚂蚁金服

第八周作业

qihuajun

全栈新星 -- Dart

金刚狼

flutter dart 全栈 aqueduct

编程核心能力之重构

顿晓

学习 重构

AI与劳模的交点:拼多多农研大赛释放的产业能量

脑极体

java并发系列 :实战篇,微服务日志的伤痛,一并帮你解决掉

南方有乔木兮

产业区块链一周新动态

CECBC

多项扶持政策 产业研究高涨 学会协会成立 应用频繁落地

Java面试胜经001| 阿里Java面试题118道

BUZHIDAO

面试

ARTS 打卡第 4 周

Scotty

设计数据库

左洪斌

周末在家加班开发代扣支付网关!

诸葛小猿

加班

“链”上普洱,云南省区块链中心走进大美普洱

CECBC

区块链+ “链”上普洱 数字云南 分布式产业

【总结】性能优化2

小胖子

ARTS-WEEK8

一周思进

ARTS 打卡计划

比 996 更可怕的是职场 PUA

非著名程序员

职场 职场成长 职场误区 职场 PUA

Spark 窗口函数 I

马小宝

spark 窗口函数 spark window functions

关于MongoDB你需要知道的几件事_语言 & 开发_张龙_InfoQ精选文章