Database 分片后,我的mongodb数据库大小加倍了多少?

Database 分片后,我的mongodb数据库大小加倍了多少?,database,mongodb,nosql,sharding,Database,Mongodb,Nosql,Sharding,在我的mongodb数据库增长了很多之后,我决定对集合进行切分。 因此,我创建了一个新的分片集群,并使用mongorestore将我的旧数据导入集群 sh.status()命令显示一切正常,如下所示 然而,我的数据库大小增加了一倍。似乎不是平衡,而是将整个db克隆到两个碎片上。 这些图像显示了在旧的未分片db和新的分片db上运行db.stats()的结果。还原后,没有新数据插入到新数据库中 这是mongodb balancer的一个bug还是我遗漏了什么?数据库中的统计数据是近似的,并且经常延

在我的mongodb数据库增长了很多之后,我决定对集合进行切分。 因此,我创建了一个新的分片集群,并使用mongorestore将我的旧数据导入集群

sh.status()
命令显示一切正常,如下所示

然而,我的数据库大小增加了一倍。似乎不是平衡,而是将整个db克隆到两个碎片上。

这些图像显示了在旧的未分片db和新的分片db上运行
db.stats()
的结果。还原后,没有新数据插入到新数据库中


这是mongodb balancer的一个bug还是我遗漏了什么?

数据库中的统计数据是近似的,并且经常延迟。当一个块从一个碎片移动到另一个碎片时,它会显示为在两个碎片上都存在一段时间。这可能是因为它确实在两个地方存在了一段时间

要找出最佳的数据库大小,请以不需要平衡的方式插入文档(每个文档都预先写入其最后的碎片),然后测量磁盘空间使用情况

要了解实际磁盘使用情况,请查看磁盘使用情况而不是统计数据


请注意,在磁盘上存储数据以获得更好的性能时,所有数据库都有开销。对于MongoDB来说,这可能非常重要,并且在服务器本身和WiredTiger之间有各种选项可用于调整各个方面。

如果您在数据库上实际运行相同的命令,那么输出是什么?我打赌你的指数很大。你有文本索引或许多复合索引吗?可能只是在恢复时阅读此页的问题我删除了@Minsky的所有索引,所以我只有碎片索引,我的磁盘使用率在所有集群成员上为8 Gig,在这些成员上应该是4。你能看一下索引大小吗?它就在db stats
db.stats()上。
我的磁盘使用率是原来的两倍,而不是一半@D.SM