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

MongoDB използва много памет

1) По отношение на издръжливостта, можете да кажете на драйвера на MongoDB Java (който Morphia използва), коя стратегия да използвате, вижте https://github.com/mongodb/mongo-java-driver/blob/master/src/main/com/ mongodb/WriteConcern.java#L53 . Това е просто компромис между скорост:NONE (дори проблемите със свързването няма да причинят грешка) до FSYNC_SAFE (данните определено се записват на диск). За вътрешни подробности вижте http://www.kchodorow.com/blog/2012/10/04/how-mongodbs-journaling-works/

2) Всичките ви данни се картографират в паметта (ето защо 32-битовото издание има ограничение на размера от 2 GB), но те се зареждат действително само когато е необходимо. MongoDB оставя това на операционната система, като използва mmap. Така че, докато има повече налична RAM, MongoDB с радост ще зареди всички необходими данни в RAM, за да прави заявките много бързи. Ако няма повече налична памет, зависи от операционната система да размени старите неща. Това има хубавия ефект, че вашите данни ще бъдат запазени в паметта, дори ако рестартирате процеса MongoDB; само ако рестартирате самия сървър, данните трябва да бъдат извлечени от диска отново. Мисля, че недостатъкът е, че процесът на базата данни може да има малко по-добро разбиране за това какво трябва да бъде заменено първо в сравнение с операционната система. Не използвам MongoDB на Windows и не съм виждал това съобщение на Mac или Linux (все още ), но операционната система трябва да се справи с това вместо вас (и автоматично да разменя части от информация, ако е необходимо). Опитахте ли да настроите драйвера на JOURNAL_SAFE (трябва да е добър компромис между сигурността на данните и скоростта)? При тази настройка не трябва да се губят данни, дори ако процесът MongoDB умре.

3) Като цяло MongoDB е създаден да използва възможно най-много налична памет, но може да сте в състояние да я ограничите с http://captaincodeman.com/2011/02/27/limit-mongodb-memory-use-windows/ - което не съм тествал, тъй като използваме (виртуални) Linux сървъри.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Различен брой на множество полета, използвайки агрегиране на mongodb

  2. Съхраняване на приятелски отношения в MongoDB?

  3. Преглед на WiredTiger Storage Engine за MongoDB

  4. mongodb приблизително съвпадение на низове

  5. Не може да се разреши отхвърлянето на обещание и да се изпрати масив като отговор