如何知道MongoDB的集合大小?

Sel*_*mar 9 mongodb

db.collection.stats()

回应:

    "count" : 20696445,
    "size" : NumberLong("1478263842661"),
    "storageSize" : 334732324864,
    "totalIndexSize" : 676327424,
    "indexSizes" : {
            "_id_" : 377094144,
            "leadID_1" : 128049152,
            "leadID_hashed" : 171184128
    },
    "avgObjSize" : 71425.97884134208
Run Code Online (Sandbox Code Playgroud)

我的实际磁盘大小与storageSize匹配.那么尺寸和其他关键是什么.

Ste*_*nie 8

你没有提到你正在使用的MongoDB服务器的版本,但考虑到size你的数据比大得多的storageSize磁盘上,我假设你正在使用的WiredTiger存储引擎,其数据压缩和索引默认.WiredTiger存储引擎首次作为MongoDB 3.0生产系列中的一个选项提供,并成为MongoDB 3.2+中新部署的默认存储引擎.

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

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

注意:MongoDB文档是版本化的,因此您应始终确保引用与MongoDB发行版系列相匹配的文档(即3.2,3.4,...).默认文档链接将指向当前的生产版本.


gif*_*pif 5

参考链接

collStats.size
集合中所有记录在内存中的总大小。该值不包括记录头,即每条记录 16 字节,但包括记录的填充。此外,大小不包括与集合相关联的任何索引的大小,totalIndexSize 字段报告了该大小。

scale 参数会影响此值。

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

storageSize不包括索引大小。请参阅totalIndexSize索引大小。

  • 感谢您的回答,因为我担心**大小**是**1.4TB**而**存储大小**是**334GB**。为什么存在这么大的空间差异。它是如何计算的? (2认同)
  • @SelvaKumar WiredTiger 将您的数据压缩到磁盘上;1.4 TB 是原始文档大小,在磁盘上占用 334 GB。 (2认同)