首页 > 解决方案 > 如何通过 storageSize 而不是 dataSize 创建上限集合?

问题描述

在 Debian GNU/Linux 9 (stretch) 上运行 MongoDB 4.0.4,集合大小上限为 2.9TB,使用 WiredTiger 引擎的文档数量不受限制。

{
    ...
    "size" : NumberLong(3113851252530), // <= ~2.9T
    "count" : 238059628,
    "avgObjSize" : 13080,
    "storageSize" : 863343902720.0, // <= ~804G
    "capped" : true,
    "max" : -1,
    "maxSize" : NumberLong(3113851291136), // <= 2.9T
    ...
}

所以size达到了2.9T的上限,我也开始覆盖旧文件。但是,我在创建集合时考虑到了存储大小,我不太关心未压缩数据的大小。

磁盘上有足够的空间(8TB)。在 1M 的上限集合中也得到了完全相同的行为。

我可以storageSize改为限制集合大小吗?

标签: mongodbwiredtigercapped-collections

解决方案


推荐阅读