2017-04-20 49 views
0

我已阅读关于在MongoDB中分片集合的信息。 MongoDB允许我通过调用shardCollection方法明确地分割一个集合。在那里我可以选择是否希望它被分享或散列分解。MongoDB如何在集群中分布数据

我的问题是,如果我没有调用shardCollection方法会发生什么情况,并且我说有100个节点?

MongoDB会保持集合不变并将它们分布在集群中吗?

MongoDB将所有的集合保存在单个节点中吗?

我完全不明白这是如何工作的吗?

回答

1

数据库可以包含分片和非分片集合的混合。分片集合分区并分布在集群中的分片上。就像在MongoDB 3.4中一样,每个数据库都有一个主分片,其中存放了未分片的集合。如果您的部署包含多个数据库,则这可能会导致未分发集合的一些分发,但对于未分发的数据没有平衡活动。有关预期行为的更多信息,请参阅MongoDB手册中的Sharding部分。

如果您有兴趣在分片数据库中分发未加粉碎的集合,那么您可以在MongoDB问题跟踪器中观看/投票相关的功能请求:SERVER-939: Ability to distribute collections in a single DB