我正在运行MongoDB群集(我的网站后端)。我正在将以前的db从简单的转换为碎片结构。
问题是:我应该把我所有的收藏品都切分,还是只把那些我希望增长很多的收藏品切分。我有一些收藏永远不会超过几千份文件,最多也就几十万份,我应该把它们切分吗?如果是什么时候?在转换过程中,还是在以后不加阴影和碎片的情况下转换?
换个说法:如果一个表不是太大,那么对它进行切分有什么好处吗?

最佳答案

一个常见的误解是,分片是基于集合的大小。这完全不真实。然而,常识确实表明,当一个集合达到一定的大小时,它可能太多,无法存储在单个服务器上,但另一方面,碎片的原因是由操作而不是大小决定的。
可以理解的是,那些将“大量增长”的操作应该被切分以在集群中分发这些操作,但是那些可能要安静得多的操作,例如较小的集合可以很高兴地保留在主切分上。
至于什么时候切分它们:这取决于操作。sharding的设计目的是扩展读写,因此它只是一个何时需要扩展集合的问题。
你可能有一个1000个项目的集合,但是如果操作要求对它进行分片,那么它需要分片。反之亦然,你可以收集10亿件物品,但仍然不值得分片。

09-30 13:03
查看更多