【问题标题】:Why using sharding with MongoDB?为什么在 MongoDB 中使用分片?
【发布时间】:2011-12-05 03:57:46
【问题描述】:

我们开始在工作中使用 MongoDB。 到目前为止一切都很好,但是我被要求评估 MongoDB 是否可以同时进行 Replica Set 和 Sharding。经过一段时间的搜索,我发现是的,它可以,但除非真的有必要,否则应该避免分片。

我读过somewhere 说,对于 MongoDB,您确实需要大量文档(例如数十亿)才能开始考虑分片,但是我无法理解这一点,因为没有提及平均文档的组织和大小在那些“统计数据”中。

我们现在的标准是 RAM 应该大于完成请求所需的内存负载。

这些让我想到了这些问题: MongoDB 和 SQL Server 需要哪些指令才能知道 RAM 中用于请求的内容?

在 MongoDB 中使用 Sharding 的关键要求是什么?

当有人解释他们为什么将 Sharding 与 MongoDB 一起使用时,有人能指出我的文章、帖子或任何内容吗?

MongoDB 如何处理自动分片?

谢谢。

【问题讨论】:

    标签: sql-server mongodb mongodb-.net-driver nosql


    【解决方案1】:

    据我了解,您的工作集(您最常访问的数据)必须适合 RAM 才能获得良好的性能。如果没有,则可以选择分片。

    副本集允许在整个集合中分配读取,而分片也可以用于分配写入。

    O'Reilly 有一本书名为“scaling mongodb”,解释了如何以及何时使用副本集和分片。

    你也可以看看这个页面:http://www.mongodb.org/display/DOCS/Sharding+Introduction

    【讨论】:

    • 您的所有数据不必都在 RAM 中 - 但索引确实应该在 RAM 中,否则您将看到性能大幅下降。
    • 为了进一步限定,经常使用的索引部分应该在内存中(所谓的右平衡)。但在某些情况下,这将是整个索引。
    • @JamesAvery 如果我理解正确,只有索引必须完全适合 RAM 才能使 MongoDB 发挥性能?
    • @ixi 我想我会看看这本书。我去过你给我的页面,但没有找到我要找的信息。我会再次检查一下,因为我对这个主题有了一些更好的了解。
    • @Matt 谢谢!你有资源可以详细解释我的技术原因吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 2012-10-09
    相关资源
    最近更新 更多