mongodb 中哪个消耗更多内存布尔值或整数?

shu*_*l92 5 mongodb

嗨,我有一个应用程序,我们以整数形式发送警报状态,可以是 1 或 0。我正在使用 Mongodb 来存储警报状态。Mongodb 使用一种称为 integer 的类型,它可以存储 32 位或 64 位整数值。它还有一个称为布尔值的数据类型,它存储一个 True 或 False 值。我有 2,00,000 条记录,带有 2,00,000 个不同设备的警报状态。我的问题是 mongo 如何在其中存储布尔值(基本上是内部机制)?还有在 mongodb 数据库中消耗较少的内存(布尔值或整数)?

小智 6

当你对 mongodb 的底层应用细节感兴趣时,我总是推荐BSON 规范作为你的参考点。

布尔值是两个字节(一个用于类型信息 'boolean',一个用于值0x00 for false0x01 for true。一个 32 位整数占用 5 个字节,一个 64 位整数占用 9 个字节,其中第一个字节用于类型,其余用于信息。

如果更改类型,性能不太可能改变,因为一旦 CPU 比较在整个查询中几乎没有什么可做的。


Kar*_*rma 2

在 MongoDB 中,布尔值的大小为 2 个字节,而您可以选择 32 位整数数据类型或 64 位(4 字节或 8 字节)。

您可以在此处查看数据类型的完整列表:http://docs.mongodb.org/manual/reference/bson-types/