View a markdown version of this page

Verwaltung von Indizes - Amazon DocumentDB

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.

Verwaltung von Indizes

Indexblähung

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: 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 } }

Sie können Indizes ohne Ausfallzeiten neu erstellen, indem Sie den Befehl Reindex verwenden, der einen Scan der gesamten Sammlung erfordert. Siehe Indexverwaltung mit Reindex.

Indexverwaltung mit Reindex

Reindex ist ein Befehl, mit dem ein Index neu erstellt wird. Er wird normalerweise verwendet, wenn ein Index beschädigt oder ineffizient geworden ist. Im Laufe der Zeit können Indizes aufgrund vieler Aktualisierungen, Einfügungen oder Löschungen ungenutzten Speicherplatz ansammeln, was zu Leistungseinbußen führt. Die Neuindizierung hilft dabei, diesen ungenutzten Speicherplatz zu entfernen und die Effizienz des Indexes wiederherzustellen.

Richtlinien zur Neuindizierung

  • Reindex wird nur auf Amazon DocumentDB 5.0 und höher unterstützt

  • Reindex wird immer im Hintergrund ausgeführt.

  • Amazon DocumentDB unterstützt die Neuindizierung eines einzelnen Indexes im Hintergrund, sodass mehrere Worker möglich sind. Der alte Index kann für Abfragen verwendet werden, wenn der Reindex-Prozess läuft.

  • Amazon DocumentDB unterstützt die Indexierung von Fortschrittsberichten über CurrentOp. Sie können die Phasen der Indexerstellung sehen, die den Phasen der Indexerstellung bei der Indexerstellung ähneln. Der einzige Unterschied besteht darin, dass Reindex immer acht Stufen hat, unabhängig davon, ob es eindeutig ist oder nicht. Es gibt keine Stufe „Index erstellen: Schlüssel sortieren 2“.

  • Reindex kann gleichzeitig mit allen Befehlen ausgeführt werden, mit Ausnahme von Index-Befehlen für dieselbe Sammlung: createIndexes, dropIndexes, CollMod und RenameCollection.

  • Reindex wird derzeit nicht für Text-, Geodaten-, Vektor- und Teilindizes unterstützt.

ReIndex erstellen

Verwenden Sie den folgenden Befehl, um Ihren Index neu zu erstellen:

db.runCommand({ reIndex: "collection-name", index: "index-name"})

Optional können Sie auch die Anzahl der Worker steuern, die dem Neuerstellungsprozess zugewiesen sind:

db.runCommand({ reIndex: "collection-name", index: "index-name", workers: number })

Spezifische Informationen zur Verwaltung von Indizes mit Java finden Sie unterIndexverwaltung in Amazon DocumentDB mit Java.