在MongoDB中存储数据需要多少空间?

时间:2019-01-28 19:09:02

标签: mongodb datastore

我有一个大约有50 collections的MongoDB,但是将来会增加。在每个collections上,我们将拥有fields,范围为5-11列。

我的问题是如何优化MongoDB,以免由于superLongCollectionFieldName而占用存储空间。存储数据时如何计算字符/单词?

假设我有一个名为userID的字段,另一个名为IP的字段是否都占用了整个位块的大小?

1 个答案:

答案 0 :(得分:1)

数据所需的总体存储将取决于许多用例特定的因素,包括架构,索引,数据的可压缩性以及数据更新/删除模式。字段名称的长度不会显着影响索引大小(因为索引仅存储键值和文档位置),但是长名称可能会对存储使用产生一些影响。估算存储使用率的最佳方法是使用数据生成器或通过extrapolating from existing data生成一些代表性的测试数据。

MongoDB(从4.0开始)没有维护字段名称的中央目录:字段名称存储在每个文档中,因此文档在分布式部署中是自描述的。在所有最新版本的MongoDB(3.2+)中,默认情况下都会压缩数据,因此对于大多数用例而言,字段名称的大小并不是典型的问题。

您可以通过应用程序代码实现对短名称的映射,但这将增加翻译开销并降低存储在服务器中的文档的清晰度。有关更多讨论,请参见:SERVER-863: Tokenize the field names