Оптимизировать тип данных в MONGO (c #) - PullRequest
0 голосов
/ 21 октября 2011

Я прочитал этот тест о 3 различных базах данных здесь:

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

Когда я читаю, я вижу, что MongoDB находится "в базе данных памяти", поэтому, если все данные БД могут быть загрузка в ОЗУ производительность БД очень хорошая. В противном случае будет очень плохо. Я прочитал, что MongoDB хорош для проекта с "не бездонной данных".

Я исследовал свой первый проект с целью оптимизации каждого документа.

Я вижу, что мой документ с полем BYTE будет конвертирован в 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 для анализа данных базы данных. Я думаю, что это очень опасно для памяти.

Итак, мой вопрос: что мне нужно для оптимизации данных BYTE в Mongo?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2011

Поскольку двоичный тип данных BSON имеет переменную длину и также включает в себя 1-байтовое поле подтипа, он имеет служебную нагрузку в 5 байтов, поэтому сохранение одного байта в виде двоичного файла занимает 6 байтов.

Вам лучше хранить его как 4-байтовое целое число.

0 голосов
/ 21 октября 2011

За исключением случаев, когда вы используете миллиарды записей, это не повредит слишком сильно. (int32 только 4 байта)

Вместо этого вы можете использовать двоичный файл типа bson, если хотите. это эквивалент байта [].

...