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

Намаляване на размера на файла на базата данни MongoDB

АКТУАЛИЗИРАНЕ: с compact команда и WiredTiger изглежда, че допълнителното дисково пространство всъщност ще бъде освободено на операционната система.

АКТУАЛИЗИРАНЕ: от v1.9+ има compact команда.

Тази команда ще извърши уплътняване "в линия". Все пак ще има нужда от допълнително място, но не толкова.

MongoDB компресира файловете чрез:

  • копиране на файловете на ново място
  • преглеждане на документите и повторното им подреждане/пренареждане
  • замяна на оригиналните файлове с новите

Можете да направите това "компресиране", като изпълните mongod --repair или като се свържете директно и стартирате db.repairDatabase() .

И в двата случая имате нужда от място някъде, за да копирате файловете. Сега не знам защо нямате достатъчно място за извършване на компресиране, но имате някои опции, ако имате друг компютър с повече място.

  1. Експортирайте базата данни на друг компютър с инсталиран Mongo (с помощта на mongoexport ) и след това можете да импортирате същата база данни (използвайки mongoimport ). Това ще доведе до нова база данни, която е по-компресирана. Сега можете да спрете оригиналния mongod заменете с новите файлове на базата данни и сте готови.
  2. Спрете текущия mongod и копирайте файловете на базата данни на по-голям компютър и стартирайте ремонта на този компютър. След това можете да преместите новите файлове на базата данни обратно на оригиналния компютър.

Понастоящем няма добър начин за „уплътняване на място“ с помощта на Mongo. А Mongo определено може да заеме много място.

Най-добрата стратегия в момента за уплътняване е да стартирате настройка Master-Slave. След това можете да уплътните Slave, да го оставите да навакса и да ги превключите. Знам, че все още е малко космат. Може би екипът на Mongo ще излезе с по-добро уплътняване на място, но не мисля, че е високо в списъка им. Понастоящем се предполага, че дисковото пространство е евтино (и обикновено е така).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Разработване на база данни на Python и MongoDB

  2. MongoDB група по стойности в поле на масив

  3. Агрегатният конвейер на MongoDB се бави след първата стъпка на съвпадение

  4. Как да изпълня командата mongodump програмно от node.js?

  5. MongoDB Upsert Обяснено