2012-03-31 2 views
3

GridFs имеет размер по умолчанию 256 кб, но если я храню много небольших файлов размером 6 килобайт, то я тогда возьму накладные расходы на 250 кб зарезервированных но неиспользуемый файл discspace pr, или GridFs упаковывает небольшие файлы в один и тот же кусок? (Я знаю, что для метаданных есть дополнительные накладные расходы).Накладные расходы на чанк в сетях MongoDb при использовании официального драйвера C# для хранения небольших файлов

ответ

4

Тот же вопрос был задан и ответил на mongodb-user group on Google Groups.

Последний фрагмент файла GridFS является таким большим, каким он должен быть, поэтому накладных расходов не будет.

В вашем примере файл размером 6 килобайт будет храниться в виде одного 6kb-фрагмента (плюс метаданные).

+0

Но как получилось, что оболочка mongo показывает chunksize 262144 для файла 15,2 kb? : > db.fs.files.find() довольно() { "_id":. ObjectId ("4f7aea4d8f0ddc187c435718"), "имя файла": "logo.png", "длина": 15624, " chunkSize»: 262144, "uploadDate": ISODate ("2012-04-03T12: 17: 17.196Z"), "md5": "5b1a277095f6535c9f7353c3a3d320f0" } – ssn

+0

Потому что размер блока, который был использован, когда этот файл был загружен , Если вы действительно пошли и посмотрели на один и тот же кусок, вы обнаружите, что его размер составляет 15,2 КБ. –