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

Как да подобря производителността на update() и save() в MongoDB?

Много е вероятно да попаднете на много често срещано затруднение в MongoDB. Тъй като актуализирате документи много често чрез добавяне на низове, има голям шанс да ви свърши мястото за този документ и да принудите базата данни непрекъснато да премества този документ в друго пространство в памет\диск, като го пренаписва в края на файла с данни.

Добавянето на индекси може само да навреди на производителността при запис, така че няма да помогне за подобряване на производителността, освен ако не сте натоварени с четене.

Бих обмислил промяна на логиката на приложението ви, за да направя това:

  1. Индекс на полето за ключови думи
  2. Преди да вмъкнете нещо в базата данни всеки път, когато откриете туит, потърсете документа, който съдържа ключовата дума. Ако не съществува, вмъкнете нов документ, но подпълнете ids свойство чрез добавяне на цял куп фалшиви низове в масива. След това веднага след като го поставите, премахнете всички идентификатори от този масив. Това ще накара mongodb да отдели допълнително място за целия този документ, така че когато започнете да добавяте идентификатори към полето за идентификатори, той ще има достатъчно място за растеж.
  3. Вмъкнете идентификатора на туита в ids поле


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Spring MongoDB Repository работи само в някои случаи

  2. Получаване на задължителни полета от Document в mongoengine?

  3. OData Jaydata - искането за актуализиране на odata връща грешка 404 (SAPUI5, възел)

  4. Как да превключите булево поле в един документ с атомна операция?

  5. Meteor:качване на файл от клиент в колекция Mongo срещу файлова система срещу GridFS