Sql server 为什么在MongoDB中使用切分?

Sql server 为什么在MongoDB中使用切分?,sql-server,mongodb,mongodb-.net-driver,nosql,Sql Server,Mongodb,Mongodb .net Driver,Nosql,我们开始在工作中使用MongoDB。 到目前为止一切都很好,但是我被要求评估MongoDB是否可以同时进行副本集和分片。在搜索了一段时间后,我发现是的,它可以,但切分应该避免,除非真的有必要 我已经读到,在MongoDB中,你真的需要有很多文档(比如数十亿)来开始考虑切分,但是我无法理解这一点,因为在这些“统计数据”中没有提到平均文档的组织和大小 我们现在的标准是RAM应该大于完成请求所需的内存负载 这让我想到了这些问题: MongoDB和SQL server了解RAM中用于请求的内容的说明是什

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

我已经读到,在MongoDB中,你真的需要有很多文档(比如数十亿)来开始考虑切分,但是我无法理解这一点,因为在这些“统计数据”中没有提到平均文档的组织和大小

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

这让我想到了这些问题: MongoDB和SQL server了解RAM中用于请求的内容的说明是什么

在MongoDB中使用分片的关键要求是什么

当有人解释他们为什么在MongoDB中使用Sharding时,有人能给我指一篇文章、帖子或其他什么吗

MongoDB如何处理自动切分


谢谢。

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

副本集允许跨副本集分发读取,而分片也可以用于分发写入

在O'Reilly有一本叫做“scaling mongodb”的书,解释了如何以及何时使用副本集和碎片


您也可以查看此页面:

您的所有数据不必都在RAM中,但索引确实应该在RAM中,否则您将看到性能的巨大下降。为了进一步证明这一点,经常使用的索引部分应该在内存中(所谓的右平衡)。但在某些情况下,这将是整个索引。@jamesavy如果我理解正确,只有索引必须完全适合RAM,MongoDB才能运行?@ixi我想我会检查这本书。我已经到了你给我的页面,没有找到我要找的信息。我会再检查一遍,因为我对这个主题有了一些更好的了解。@Matt谢谢!你有没有一个资源可以向我详细解释它的技术原因?