MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie kann die Leistung von update() und save() in MongoDB verbessert werden?

Es ist sehr wahrscheinlich, dass Sie in MongoDB auf einen sehr häufigen Engpass stoßen. Da Sie Dokumente sehr häufig aktualisieren, indem Sie Zeichenfolgen hinzufügen, besteht eine gute Chance, dass Ihnen der Speicherplatz für dieses Dokument ausgeht und Sie die Datenbank zwingen, dieses Dokument ständig an einen anderen Ort im Speicher/auf der Festplatte zu verschieben, indem Sie es am Ende neu schreiben der Datendatei.

Das Hinzufügen von Indizes kann nur die Schreibleistung beeinträchtigen, sodass die Leistung nicht verbessert wird, es sei denn, Sie lesen viel.

Ich würde erwägen, Ihre Anwendungslogik zu ändern, um dies zu tun:

  1. Indexieren Sie das Keyword-Feld
  2. Bevor Sie jedes Mal, wenn Sie einen Tweet entdecken, etwas in die Datenbank einfügen, fragen Sie nach dem Dokument, das das Schlüsselwort enthält. Wenn es nicht existiert, fügen Sie ein neues Dokument ein, aber füllen Sie die ids auf -Eigenschaft, indem Sie dem Array eine ganze Reihe falscher Zeichenfolgen hinzufügen. Entfernen Sie dann unmittelbar nach dem Einfügen alle IDs aus diesem Array. Dies veranlasst mongodb, zusätzlichen Platz für das gesamte Dokument zuzuweisen, sodass es viel Platz zum Wachsen hat, wenn Sie beginnen, IDs zum ID-Feld hinzuzufügen.
  3. Fügen Sie die ID des Tweets in die ids ein Feld