gpt4 book ai didi

mongodb - Mongo 数据库大小不一致

转载 作者:可可西里 更新时间:2023-11-01 10:04:02 25 4
gpt4 key购买 nike

我使用 Mongo GridFS,我有一个相当大的 Mongo 数据库,当我使用 db.stats() 命令时,当前数据大小为 89GB。

当我创建一个 mongo 转储时,文件系统中的目录大小为 86GB,当我在另一台机器上恢复数据库并运行 db.stats() 时,我现在得到 122GB。

有谁知道转储/恢复后 dataSize 增加 33GB 的原因是什么?

编辑这是初始数据库的统计数据

MongoDB shell version: 2.4.5
connecting to: imgdb
rs0:PRIMARY> db.stats();
{
"db" : "imgdb",
"collections" : 4,
"objects" : 2549884,
"avgObjSize" : 37802.88397276111,
"dataSize" : 96392968996,
"storageSize" : 363433842080,
"numExtents" : 207,
"indexes" : 4,
"indexSize" : 307245904,
"fileSize" : 366974337024,
"nsSizeMB" : 16,
"dataFileVersion" : {
"major" : 4,
"minor" : 5
},
"ok" : 1
}

这是恢复数据库的统计数据

MongoDB shell version: 2.6.4
connecting to: imgdb
dbdb.stats();
{
"db" : "imgdb",
"collections" : 4,
"objects" : 2549924,
"avgObjSize" : 51781.40103312883,
"dataSize" : 132038637248,
"storageSize" : 132281756768,
"numExtents" : 98,
"indexes" : 4,
"indexSize" : 199976784,
"fileSize" : 135159349248,
"nsSizeMB" : 16,
"dataFileVersion" : {
"major" : 4,
"minor" : 5
},
"extentFreeList" : {
"num" : 0,
"totalSize" : 0
},
"ok" : 1
}

以下是对可能原因的一些想法:

  1. 出于某种原因,我在恢复版本中多了 40 个对象!
  2. 不同的 mongo 版本,这可能是索引算法发生变化的原因吗?
  3. 初始数据库在一个副本集中
  4. 初始数据库曾经是 320 GB,但我进去压缩了所有图像,不久前将其减少到 75GB。这就是初始数据库的存储大小要高得多的原因

最佳答案

MongoDB 2.6 使用 Powers of Two Record Allocation默认情况下。

在加载数据之前,您可以尝试更改 mongod newCollectionsUsePowerOf2Sizes或者 collMod 你的收藏:

db.runCommand( { collMod: "myCollection", usePowerOf2Sizes: false })

关于mongodb - Mongo 数据库大小不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26950100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com