Mongodb

Mongodb塊大小問題

  • December 17, 2021

我有一個大小為:60 GB 的集合

我想分片這個集合。分片鍵是雜湊索引並且是唯一的。

我遵循了這個文件https://docs.mongodb.com/manual/reference/limits/#Sharding-Existing-Collection-Data-Size

分片鍵值的平均字節大小 56287232

maxCollectionSize 即將達到 9.28 GB

由於 maxCollectionSize 和實際集合大小不同,我無法獲得應該使用的塊大小

感謝幫助

根據 MongoDB 文件修改分片集群中的塊大小分片集群的預設塊大小為**64**兆字節。

正如此處 的MongoDB 文件New in version 2.6:MongoDB 提供了mergeChunks將連續塊範圍組合成單個塊的命令。有關詳細資訊,請參閱合併分片集群中的塊

**注意:**在分片集合中拆分數據以創建新塊時要小心。當您對具有現有數據的集合進行分片時,MongoDB 會自動創建塊以均勻分佈集合。要在分片集群中有效地拆分數據,您必須考慮塊中的文件數量和平均文件大小以創建統一的塊大小。當塊具有不規則大小時,分片可能具有相同數量的塊,但具有非常不同的數據大小。避免創建導致具有不同大小塊的集合的拆分。

如需進一步參考,請點擊此處

應該沒有問題。因為您使用的是散列分片索引(64 位),所以計算如下:

16777216 (bytes)/8 (bytes) = 2097152 maxSplits
2097152 * (64MB/2)=67'108'864MB = 65'536GB = 64TB

因此,您將獲得大約 1000 個塊,這些塊均勻分佈到集群中的所有分片。

引用自:https://dba.stackexchange.com/questions/208021