MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB GridFS Размери на файлове огромни за относително малък файл

Добре; след много търсене изглежда, че MongoDB предварително разпределя място във файловете с експоненциален размер до 2Gb, след което всеки файл ще бъде 2G.

http://www.mongodb.org/display/DOCS/Excessive+Disk +Интервал

Моята тестова програма добавя 80Mb файлове във фоновите файлове (.0 - .7 и т.н.) и когато частите от данни започват да се записват в последния файл, Mongo предварително разпределя друг файл, експоненциално по-голям от последния.

Така че първият файл от 80Mb запълва файла от 16Mb, файла от 32Mb и фоновите файлове от 64Mb и поради метаданните заема малко повече място и трябва да навлезе леко във файла от 128Mb, това задейства mongo да разпредели предварително файл от 256Mb общо 496Mb; тъй като се добавят повече файлове, повече файлове се разпределят предварително и когато 2Gb достигнат на моята тестова машина, Mongo няма достъп до пространството и се свива.

Така че, въпреки че изглежда, че един файл от 80 Mb заема много повече място, отколкото би трябвало - има смисъл по заобиколен начин.

Това може да се изключи чрез стартиране на mongod с --noprealloc, въпреки че това се препоръчва само за тестови машини.

Благодаря за отговорите!



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Morphia/MongoDB:Достъп до обект за вграждане от @Embedded обект

  2. Как да върнете масив от низ с mongodb агрегиране

  3. Ключ за шардинг (MongoDB) за голям брой документи

  4. Свойството „x“ на Mongoose не съществува в тип „Документ“

  5. как да използвате агрегата на mongodb и да извличате цели документи