sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan forbedres ydeevnen af ​​update() og save() i MongoDB?

Det er meget sandsynligt, at du rammer en meget almindelig flaskehals i MongoDB. Da du opdaterer dokumenter meget hyppigt ved at tilføje strenge, er der en god chance for, at du er ved at løbe tør for plads til det pågældende dokument og tvinger databasen til konstant at flytte dokumentet til et andet rum i hukommelsen\disk ved at omskrive det i slutningen af datafilen.

Tilføjelse af indekser kan kun skade skriveydelsen, så det hjælper ikke med at forbedre ydeevnen, medmindre du bliver læst tungt.

Jeg vil overveje at ændre din applikationslogik for at gøre dette:

  1. Indeks i søgeordsfeltet
  2. Før du indsætter noget i databasen, hver gang du registrerer et tweet, skal du forespørge efter dokumentet, der indeholder nøgleordet. Hvis det ikke findes, skal du indsætte et nyt dokument, men udfylde ids ejendom ved at tilføje en hel masse falske strenge i arrayet. Så straks efter du har indsat det, skal du fjerne alle id'er fra det array. Dette vil få mongodb til at allokere yderligere plads til hele dokumentet, så når du begynder at tilføje id'er til id-feltet, vil det have masser af plads til at vokse.
  3. Indsæt tweet-id'et i ids felt


  1. Garanterer Stackexchange.Redis' fire and forget levering?

  2. node-mongodb-native:Hvordan kan jeg dele db api-objektet for forbindelsesopkaldet gennem min applikation

  3. Begrænsninger af Hadoop, måder at løse Hadoop-ulemper på

  4. Mongoose og multiple database i enkelt node.js projekt