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

Извършването на частична актуализация на MongoDb документ в WiredTiger предоставя ли някакво предимство пред пълната актуализация на документ?

WiredTiger използва Контрол на едновременното използване на множество версии (MVCC) за поддържане на множество изгледи на данни за целия живот на читателите. Форматът в паметта на WiredTiger е различен от формата на диска:в паметта той съхранява разлики към документ, но пълната версия на документа се конструира, когато се изчисти във файловете с данни като част от периодични контролни точки.

Независимо от начина, по който различните машини за съхранение на MongoDB обработват постоянните актуализации на диска, все още има предимства в производителността при използването на частични актуализации, а не на пълни актуализации, където е възможно (особено ако задавате стойности на полета, които са малки спрямо общия размер на документа).

Например, помислете за:

  • Мрежов трафик за актуализации на документи (всеки механизъм за съхранение)
  • Размер на записите в дневника (всеки механизъм за съхранение)
  • Размер на записите в oplog за репликация (всеки двигател за съхранение)
  • Размер на версиите в паметта на актуализациите (WiredTiger)

Ако изпращате пълни актуализации на документи всеки път, вие също създавате сценарии, при които редът, в който актуализациите достигат до сървъра, е значителен, дори когато промените може да са за отделни набори полета. Бихте могли да добавите допълнителна логика на приложението, като оптимистично управление на версиите, за да сте сигурни, че няма да презапишете случайно стойностите на полетата, но това може да добави ненужна сложност в зависимост от вашия случай на употреба.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose добавя множество елементи към базата данни

  2. Импортирайте csv данни като масив в mongodb, като използвате mongoimport

  3. Преобразуване на mongodb Binary _id в LUUID с помощта на възел

  4. Актуализирайте масива Mongo:премахнете динамичния ключ

  5. Намиране на всички записи, съдържащи дадено подполе в mongodb