我想用数据分割一个集合。当我尝试使用sh.shardCollection("myDb.myCollection",{id:“散列”}时,这个集合碎片,但它不会扩展到整个碎片。只会扩散到主碎片。例如,
碎片之后的空收集,
然后数据添加它将扩展到整个碎片
收集碎片后的数据,
当数据添加只进入主碎片时。
我的问题是如何正确地用MongoDB中的数据分割集合。还有别的办法吗?
发布于 2022-10-03 13:50:28
我同意@Wernfried在评论中的观点,即一旦收集被分割,集群将负责分发数据。如前所述,这是基于对集合的写入并随着时间的推移而完成的。您的测试可能有太少的数据或太少的写入触发更改。
对于关于块的初始分布的具体问题,这将在文档中讨论。在第一个示例中,在空集合上应用散列碎片键将涵盖这里。
切分操作创建空块以覆盖碎片键值的整个范围,并执行初始块分布。默认情况下,操作每个碎片创建两个块,并在集群中迁移。您可以使用
numInitialChunks选项指定不同数量的初始块。块的初始创建和分发允许更快地设置分块。
与数据收集有关的行为仅在此这里之上讨论。
切分操作创建初始块以覆盖碎片键值的整个范围。创建的块数取决于配置的块大小。
这两种描述的行为都与你在问题中所展示的相吻合。
https://stackoverflow.com/questions/73930780
复制相似问题