MongoDB核心贡献者不是MongoDB不行,而是你不懂!.PDFVIP

MongoDB核心贡献者不是MongoDB不行,而是你不懂!.PDF

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MongoDB 核心贡献者:不是 MongoDB 不行,而是你不懂! 近期MongoDB 在Hack News 上是频繁中枪。许多人更是声称恨上了MongoDB, David mytton 就在他的博客中揭露了MongoDB 许多现存问题。然而恨的人 有之偏爱的也同样很多,作为回击:Russell Smith 带来了多年工作经验 的总结。Russell Smith 曾担任Ops 和大型网站缩放顾问并且帮助过 Guardian、Experian 等多家公司,MongoDB London User Group 的联合创 始人。作为 MongoDB Master (MongoDB 官方认可的 MongoDB 核心贡献者组 织,并通过社区分享自己的专业技术),其参与工作的基础设施单服务器 每秒查询超过 3 万次,每天活跃数据更在 1TB 以上。 下面来看 Russell 对 MongoDB 一些常见及生僻的问题做出分析: 32 位 vs 64 位 现在大多数的服务器都对 32 位操作系统实现支持,更有许多新型硬件支持 着允许更多 RAM 的 64 位操作系统。 MongoDB 也同时发布了 32 位及 64 位两个版本的数据库。归结于 MongoDB 使用的内存映射文件,32位版本只支持2G数据的存储。对于标准的Replica Set,MongoDB 只拥有单一的处理策略 —— mongod。如果你想在未来储存 2G 以上的数据,请使用64 位版本的 MongoDB。如果拥有分片安装,那么 32 位版本同样可以使用。 总结:使用 64 位版本或者理解 32 位版本的限制。 文件大小限制 不同于RDBMS 把数据储存在行与列中,MongoDB 的数据是储存在文件中的。 这些文件使用二进制存储形式,其格式为类似 JSON 格式的 BSON 格式。 和其它的数据库一样,单个文件的储存大小是有限制的。在旧版本的 MongoDB 中,单个文件都限制在4M 以内。而新版本的MongoDB 单文件已经 支持到 16M 大小。这样的限制也许是令人厌烦的,但是 10gen 的意见是: 如果这项设置不停的困扰到你,那么是否你的设计模式存在着问题;或者 你可以使用 文件无大小限制的 GridFS。 这种情况通常的建议是避免存储过大的文件,不定期的更新数据库中存储 的各种对象。而像Amazon S3 或者 Rackspace Cloudfiles 这样的服务通常 可能会是更好的选择,而非必要情况下最好别让基础设施陷入过载。 总结:把每个文件保持在 16M 以下,那么一切都好。 写入失败 MongoDB 在默认的情况下允许高速的写入和更新,而付出的代价就是没有 明确的错误通知。默认情况下多数的驱动都在做异步、 “不安全”写入 —— 这就意味着驱动程序不能立即反馈错误信息,类似于MySQL 的INSERT DELAYED。如果你想知道某个事情是否成功,你必须使用 getLastError 手 动的检查错误信息。 某些情况下如果你需要在错误发生后立刻得到错误信息,即:大多数的驱 动中都很容易实现同步 “安全”查询。这将谋杀掉 MongoDB 不同于传统数 据库的优点。 如果对比 “完全安全”的同步写入你需要多一点性能,同时还想要一定程 度的安全,那么你可以使用 getLastError with‘j’让 MongoDB 只到一份 日志提交后再发出错误报告通知。那么日志将以100 毫秒一次的速度输出 到磁盘,而不是 60 秒。 总结:如果必须要写入确认,你可以使用安全写入或 getLastError。 数据结构模型的弱化不等于没有数据结构模型 RDBMS 一般都拥有一个预定义的数据结构模型:表格的行和列,每个字段 都拥有名称和数据类型。如果你想给其中一行加一列,那么你必须给整个 表格都添加一列。 MongoDB 则是移除了这个设置,对于 Collection 和文件没有强制的模型限 定。这有益于快速开发及简易修改。 当然这不意味着你就可以无视结构模型的设计,一个合适的结构模型可以 让你获得 MongoDB 的最佳性能。赶快阅读MongoDB 文档,或者观看这些结 构模型设计的相关视频吧!  Schema Design Basics  Schema Design at Scale  Schema Design Principles and Practice 总结:设计结构模型并充分利用 MongoDB 的特色。 默认情况下修改语句修改的只是单个文件 在传统的 RDBMS 中除非使用LIMIT 子句,修改语句作用的

文档评论(0)

159****9825 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档