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

Der schnellste Weg, um mehr als 100 Millionen Dokumente nach ID zu löschen

Da wir uns keine Ausfallzeiten für Benutzer leisten können und die Lösung täglich ausgeführt werden soll (wenn auch in viel geringerem Umfang, da wir diesen ersten Lauf nachholen), konnte ich die Lösung von Salvador Dali nicht verwenden. Am Ende habe ich meine zu löschenden Datensätze in Gruppen von 1k gruppiert und einen BulkWrite-Befehl gesendet, der ein delete() enthält Vorgang für jeden Datensatz. Parallel dazu habe ich n BulkWrite-Befehle gesendet, um Verweise auf jeden Datensatz zu annullieren, wobei n die Anzahl der Sammlungen ist, die auf die Datensätze verweisen, und wobei jede BulkWrite-Anforderung 1k einzelne update() hat Operationen, ähnlich wie delete() . Dies funktionierte relativ schnell, sodass ich nicht versuchte, die Anzahl der Operationen in den BulkWrite-Befehlen weiter zu optimieren.