2017-04-20 48 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