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) zur Verwaltung gleichzeitiger Transaktionen. Wenn Dokumente gelöscht oder aktualisiert werden, verbleiben ihre vorherigen Versionen als „tote“ Versionen in Sammlungen und Indizes. Durch den Garbage-Collection-Prozess wird automatisch Speicherplatz aus diesen toten Versionen für future Operationen zurückgewonnen.

Ein aufgeblähter Index tritt auf, wenn die Indizes einer Sammlung aufgrund der Anhäufung toter oder veralteter Indexeinträge oder der Fragmentierung innerhalb der Seiten größer werden. Der angegebene Prozentsatz entspricht der Menge an Indexspeicher, die von future Indexeinträgen verwendet werden kann. Diese Aufblähung beansprucht Speicherplatz sowohl im Puffercache als auch im Speicher. Wenn Sie den Bloat entfernen möchten, müssen Sie die Indizes neu erstellen.

Beispiel: Führen Sie den folgenden Befehl aus, um den ungenutzten Speicherplatz für Ihren Index zu ermitteln:

db.coll.aggregate({$indexStats:{}});

Das Ergebnis sieht in etwa 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 Befehl ReIndex können Sie Indizes ohne Ausfallzeiten neu erstellen, wofür die gesamte Sammlung gescannt werden muss. 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. Eine Neuindizierung hilft dabei, diesen ungenutzten Speicherplatz zu entfernen und die Effizienz des Index wiederherzustellen.

Richtlinien für den reIndex

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

  • ReIndex läuft immer im Hintergrund.

  • Amazon DocumentDB unterstützt die Neuindizierung eines einzelnen Indexes im Hintergrund, sodass mehrere Worker verwendet werden können. Der alte Index kann für Abfragen verwendet werden, wenn der Reindex-Prozess ausgeführt wird.

  • Amazon DocumentDB unterstützt die Indexierung von Fortschrittsberichten über currentOp. Sie können Index-Erstellungsphasen sehen, die den Index-Erstellungsphasen ähneln, die während der Indexerstellung angezeigt wurden. Der einzige Unterschied besteht darin, dass ReIndex immer acht Stufen hat, unabhängig davon, ob es einzigartig ist oder nicht. Es gibt keine Phase „Index erstellen: Schlüssel sortieren 2“.

  • ReIndex kann gleichzeitig mit jedem Befehl ausgeführt werden, mit Ausnahme von indexbezogenen Befehlen für dieselbe Sammlung: createIndexes, DropIndexes, CollMod und RenameCollection.

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

Build reIndex indizieren

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 Mitarbeiter steuern, die dem Neuaufbauprozess zugewiesen sind:

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

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