Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Problembehandlung bei Indizes
Die folgenden Themen erläutern, was zu tun ist, wenn Ihr Index oder Ihr Indexaufbau im Hintergrund fehlschlägt.
Themen
Die Indexerstellung schlägt fehl
Amazon DocumentDB verwendet den lokalen Speicher auf einer Instance als Teil des Indexerstellungsprozesses. Sie können diese Festplattennutzung mithilfe der FreeLocalStorage CloudWatch Metrik () CloudWatch -> Metrics -> DocDB -> Instance Metrics überwachen. Wenn ein Indexaufbau den gesamten lokalen Festplattenspeicherplatz verbraucht und fehlschlägt, erhalten Sie eine Fehlermeldung. Bei der Migration von Daten zu Amazon DocumentDB empfehlen wir Ihnen, zuerst Indizes zu erstellen und dann die Daten einzufügen. Weitere Informationen zu Migrationsstrategien und zur Erstellung von Indizes finden Sie Migration und Aktualisierung von Amazon DocumentDB in der Amazon DocumentDB-Dokumentation und im Blog: Migrieren Sie mit der Offline-Methode von MongoDB zu Amazon DocumentDB.
Wenn beim Erstellen von Indizes auf einem vorhandenen Cluster die Indexerstellung länger als erwartet dauert oder fehlschlägt, skalieren Sie die Instance hoch, um den Index zu erstellen, und skalieren Sie dann nach der Erstellung des Indexes wieder nach unten. Amazon DocumentDB ermöglicht es Ihnen, Instance-Größen innerhalb von Minuten schnell zu skalieren, indem Sie die AWS-Managementkonsole oder verwenden. AWS CLI Weitere Informationen finden Sie unter Instanzklassen verwalten. Bei der sekundengenauen Instance-Preisgestaltung zahlen Sie auf die Sekunde genau nur für die Ressourcen, die Sie verwenden.
Latenzprobleme und Fehlschläge bei der Erstellung des Hintergrundindexes
Die Erstellung von Indizes im Hintergrund in Amazon DocumentDB beginnt erst, wenn alle Abfragen auf der primären Instance, die vor der Initiierung der Indexerstellung gestartet wurden, die Ausführung abgeschlossen haben. Wenn eine Abfrage lange läuft, werden die Indexerstellungen im Hintergrund blockiert, bis die Abfrage abgeschlossen ist. Daher kann es länger als erwartet dauern, bis die Abfrage abgeschlossen ist. Dies gilt auch dann, wenn Sammlungen leer sind.
Indexerstellungen im Vordergrund weisen nicht das gleiche Blockierungsverhalten auf. Stattdessen wird die Sammlung bei Indexerstellungen im Vordergrund exklusiv gesperrt, bis die Indexerstellung abgeschlossen ist. Verwenden Sie Vordergrundindex-Builds, um Indizes für eine leere Sammlung zu erstellen und das Blockieren lang andauernder Abfragen zu vermeiden.
Anmerkung
Amazon DocumentDB erlaubt zu einem bestimmten Zeitpunkt nur die Erstellung eines Hintergrundindexes für eine Sammlung. Wenn DDL (Data Definition Language) Operationen wie createIndex() oder dropIndex() während eines Indexaufbaus im HIntergrund in derselben Sammlung auftreten, schlägt der Aufbau des Hintergrundindex fehl.
Aufblähung des Datenbankindex
Amazon DocumentDB verwendet Multi-Version Concurrency Control (MVCC), um gleichzeitige Transaktionen zu verwalten. Wenn Dokumente gelöscht oder aktualisiert werden, verbleiben ihre früheren Versionen als „tote“ Versionen in Sammlungen und Indizes. Der Garbage Collection-Prozess gibt automatisch Speicherplatz aus diesen toten Versionen für zukünftige Operationen zurück.
Eine Aufblähung des Indexes tritt auf, wenn die Indizes einer Sammlung aufgrund der Anhäufung von toten oder veralteten Indexeinträgen oder einer Fragmentierung innerhalb der Seiten größer werden. Der angegebene Prozentsatz steht für die Menge an Indexplatz, die von zukünftigen Indexeinträgen genutzt werden kann. Diese Überlastung verbraucht Speicherplatz sowohl im Puffercache als auch im Speicher. Wenn Sie das Aufblähen entfernen möchten, müssen Sie die Indizes neu erstellen.
Beispiel Beispiel
Führen Sie den folgenden Befehl aus, um ungenutzten Speicherplatz für Ihren Index zu ermitteln:
db.coll.aggregate({$indexStats:{}});
Das Ergebnis sieht ungefähr so aus:
{ "name" : "_id_", "key" : { "_id" : 1 }, "host" : "devbox-test.localhost.a2z.com:27317", "size" : NumberLong(827392), "accesses" : { "ops" : NumberLong(40000), "docsRead" : NumberLong(46049), "since" : ISODate("2025-04-03T21:44:51.251Z") }, "cacheStats" : { "blksRead" : NumberLong(264), "blksHit" : NumberLong(140190), "hitRatio" : 99.8121 }, "unusedStorageSize" : { "unusedSizeBytes" :409600, "unusedSizePercent" :49.51} }
Mit dem reIndex Befehl, der einen Scan der gesamten Sammlung erfordert, können Sie Indizes ohne Ausfallzeiten neu erstellen. Siehe Indexverwaltung mithilfe von Reindex.