OPTIONS
翻译或纠错本页面

集群所需要的条件

虽然分片是强大而又引人注目的特性,集群所需要的条件提高了部署的复杂程度,因此,只在应用所需要并且满足部署条件的时候使用集群.

在某些情况下,使用分片是 唯一 的解决办法,在以下情况下使用 集群 :

  • 你的数据接近或者超过一个MongoDB实例所能容纳的上限.

  • 系统中 working set 的大小接近系统的内存 上限 .

  • 单一的MongoDB实例不能满足写性能要求,并且所有其他方法都没有明显作用.

如果这些特性在你的系统中都没有出现,使用分片只会增加系统的复杂程度,而不会带来什么好处.

重要

部署集群会花费时间和资源,如果你的系统已经或即将达到性能极限,很难在不影响应用性能的情况下部署集群.

因此,如果你觉得你的数据库在未来需要分片, 不要等到 系统负载超限之后才开始操作.

在设计数据模型时,就应该考虑数据分片.

数据数量的需求

只有在你的集群拥有大量数据时,分片才会显示出性能上的优势.默认的 chunk 大小是64M,而且在数据的不均衡程度达到 迁移阈值 之前, 均衡器 并不会工作.实际上,除非你的集群有几百M的数据,否则你的数据将会存储在一个分片上.

在某些情况下,你也许需要对一个小的集合开启分片,但在大多数情况下,对小的集合开启分片,带来的复杂程度和开销会使得这种行为得不偿失,除非你想要获得更高的写性能.一般情况下,如果你的数据量较小,一个合理配置的单个MongoDB或者一个复制集在很长时间内都已经足够.

Chunk size is user configurable. For most deployments, the default value is of 64 megabytes is ideal. See 数据块大小 for more information.