如何知道MongoDB集合的大小?

如何知道MongoDB集合的大小?,mongodb,Mongodb,db.collection.stats() 答复: "count" : 20696445, "size" : NumberLong("1478263842661"), "storageSize" : 334732324864, "totalIndexSize" : 676327424, "indexSizes" : { "_id_" : 377094144, "leadID_1" : 128049152,

db.collection.stats()

答复:

    "count" : 20696445,
    "size" : NumberLong("1478263842661"),
    "storageSize" : 334732324864,
    "totalIndexSize" : 676327424,
    "indexSizes" : {
            "_id_" : 377094144,
            "leadID_1" : 128049152,
            "leadID_hashed" : 171184128
    },
    "avgObjSize" : 71425.97884134208
我的实际磁盘大小与存储大小相匹配。那么大小和其他键是什么。

请参阅

collStats.size

集合中所有记录在内存中的总大小。此值不包括记录头(每个记录16字节),但包括记录的填充。此外,大小不包括totalIndexSize字段报告的与集合关联的任何索引的大小

scale参数会影响此值

collStats.storageSize

分配给此集合用于文档存储的总存储量。scale参数会影响此值


storageSize
不包括索引大小。有关索引大小,请参见
totalIndexSize

您没有提到您正在使用的MongoDB服务器的版本,但鉴于数据的
大小
远大于磁盘上的
存储大小
,我假设您默认使用的是。WiredTiger存储引擎最初作为MongoDB 3.0生产系列中的一个选项提供,并成为MongoDB 3.2+中新部署的默认存储引擎

在您的示例输出中,看起来您有1.4TB的未压缩
数据
,它当前占用磁盘上334GB的空间(
storageSize
值)。此集合的索引使用的存储空间在
indexSize
下单独报告,并汇总为
totalIndexSize

collection.stats()
的输出将根据您的MongoDB服务器版本和配置的存储引擎而有所不同,但通常在MongoDB手册中描述,作为其一部分,由
db.collection.stats()
shell帮助程序调用


注意:已进行版本控制,因此您应该始终确保所引用的文档与MongoDB的发行版系列(即3.2、3.4等)相匹配。默认文档链接将指向当前的生产版本。

@felix大小和存储大小之间存在很大差异。除了mongodb文档之外,我还需要更多说明。谢谢您的回答,因为我担心大小是1.4TB,存储大小是334GB。为什么会存在如此大的空间差异。如何计算?@SelvaKumar WiredTiger将数据压缩到磁盘上;1.4 TB是原始文档大小,磁盘占用334 GB。@Bouke-谢谢