sql >> Database >  >> NoSQL >> MongoDB

Hoe de prestaties van update() en save() in MongoDB verbeteren?

Het is zeer waarschijnlijk dat u een veel voorkomende bottleneck in MongoDB raakt. Aangezien u documenten heel vaak bijwerkt door strings toe te voegen, is de kans groot dat u onvoldoende ruimte voor dat document heeft en de database dwingt om dat document constant naar een andere ruimte in het geheugen\schijf te verplaatsen door het aan het einde te herschrijven van het gegevensbestand.

Het toevoegen van indexen kan de schrijfprestaties alleen maar schaden, dus dat zal niet helpen om de prestaties te verbeteren, tenzij je zwaar wordt gelezen.

Ik zou overwegen uw toepassingslogica te wijzigen om dit te doen:

  1. Index op het zoekwoordveld
  2. Voordat u elke keer dat u een tweet detecteert iets in de database invoegt, moet u zoeken naar het document dat het trefwoord bevat. Als het niet bestaat, voeg dan een nieuw document in, maar vul de ids . in eigenschap door een hele reeks nep-strings in de array toe te voegen. Verwijder dan onmiddellijk na het invoegen alle id's uit die array. Dit zorgt ervoor dat mongodb extra ruimte toewijst voor dat hele document, zodat wanneer je begint met het toevoegen van id's aan het ids-veld, het voldoende ruimte heeft om te groeien.
  3. Voer de id van de tweet in de ids veld


  1. Documenten zoeken op array van DBref's

  2. Een gids voor het configureren van een load balancer in een MongoDB Sharded-cluster

  3. Wat is een goede databasekeuze voor een kleine .NET-toepassing?

  4. Plaats een afbeelding met binaire en andere gegevens