优化MONGO中的数据类型(c#)

时间:2011-10-21 07:55:50

标签: mongodb mongodb-.net-driver

我已经在这里阅读了关于3个不同数据库的基准:

http://blog.cubrid.org/dev-platform/nosql-benchmarking/

正如我读到的,我看到MongoDB是“在内存数据库中”,所以如果DB的所有数据都可以 加载到RAM中DB的性能非常好。否则会很差。 我读到MongoDB对于“不是数据不清晰”的项目是有益的。

我已经调查了我的第一个项目,以便优化每个文档。

我看到我的带有BYTE字段的文档将由Mongo转换为Int32!

public partial class i_Room
    {
        [BsonId(IdGenerator = typeof(ObjectIdGenerator))]
        public ObjectId _id { get; set; }

        public global::System.Byte TypeRoom; 
        public global::System.Byte ModeRoom;
    }

字段“TypeRoom”和“ModeRoom”在MongoDB的Int32中转换:我使用MongoVUE来内省数据库数据。我认为这对记忆非常危险。

所以我的问题是:为了优化Mongo中的BYTE数据我需要做什么?

2 个答案:

答案 0 :(得分:0)

除非您使用数十亿条记录,否则不会造成太大伤害。 (int32只有4个字节)

如果需要,您可以改为使用bson类型二进制文件。这相当于byte []。

答案 1 :(得分:0)

因为BSON的二进制数据类型是可变长度并且还包括1字节子类型字段,所以它具有5字节的开销,因此将单个字节存储为二进制需要6个字节。

最好将其存储为4字节整数。