2011-10-21 27 views
0

我读这个基准约3个不同的数据库位置:优化数据类型MONGO(C#)

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”被转换中的Int32 MongoDB中:我使用MongoVUE为了内省数据库数据。我认为这对记忆非常危险。

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

回答

0

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

如果需要,你可以改用bson类型的二进制。这相当于byte []。

0

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

你最好将它存储为一个4字节的整数。