我已经在这里阅读了关于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数据我需要做什么?
答案 0 :(得分:0)
除非您使用数十亿条记录,否则不会造成太大伤害。 (int32只有4个字节)
如果需要,您可以改为使用bson类型二进制文件。这相当于byte []。
答案 1 :(得分:0)
因为BSON的二进制数据类型是可变长度并且还包括1字节子类型字段,所以它具有5字节的开销,因此将单个字节存储为二进制需要6个字节。
最好将其存储为4字节整数。