为什么要在 MongoDB 中使用分片?

lol*_*f37 5 sql-server mongodb nosql mongodb-.net-driver

我们开始在工作中使用 MongoDB。到目前为止一切顺利,但我被要求评估 MongoDB 是否可以同时进行副本集和分片。经过一段时间的搜索后,我发现是的,可以,但除非确实必要,否则应该避免分片。

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

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

这让我想到了这些问题:MongoDB 和 SQL 服务器有哪些指令可以了解请求的 RAM 使用情况?

将 Sharding 与 MongoDB 结合使用的关键要求是什么?

当有人解释为什么他们将 Sharding 与 MongoDB 结合使用时,有人可以向我指出一篇文章、帖子或任何其他内容吗?

MongoDB 如何处理自动分片?

谢谢。

ixi*_*ixi 3

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

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

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

您还可以查看此页面:http://www.mongodb.org/display/DOCS/Sharding+Introduction

  • 您的所有数据不必都位于 RAM 中 - 但索引确实应该位于 RAM 中,否则您会看到性能大幅下降。 (3认同)