MongoDB-Index
Ohne Indizes müsste MongoDB jede Datei in der Sammlung scannen und jene Datensätze auswählen, die die Abfragekriterien beim Lesen der Daten erfüllen.
Diese Art von Abfrageeffizienz beim Scannen des gesamten Sets ist sehr gering, besonders bei der Verarbeitung großer Datenmengen; die Abfrage kann Dutzende Sekunden oder sogar Minuten dauern, was der Leistung der Website sehr schadet.
Indizes sind spezielle Datenstrukturen, die in einer Datensammlung gespeichert werden und leicht über einen Index gelesen werden können, und Indizes sind eine Struktur, die die Werte einer oder mehrerer Spalten in einer Datenbanktabelle sortiert.
Rezension:
Abfrage des Ausführungsplans
Beispielaussagen:
Ohne einen Index zu erstellen (winningPlan:COLLSCAN), wie in der untenstehenden Abbildung gezeigt:
die explain()-Funktion kann auch verschiedene Parameter erhalten, und du kannst einen detaillierteren Abfrageplan einsehen, indem du andere Parameter einlegst.
Parameter umfassen:queryPlanner (Standard)、executionStats、allPlansExecution
Execute explain ("executionStats") und du wirst feststellen, dass es mehr Statistiken im Execution Plan gibt.
| Parameter | Bedeutung | | totalKeysExamined | Anzahl der Indexscans | | totalDocsExamined | Anzahl der Dokumentenscans | | nZurückgekehrt | Die Anzahl der zurückgegebenen Ergebnisse | | HinrichtungTimeMillis | Die Ausführung ist zeitaufwendig | | Hinrichtung Erfolg | Ob die Hinrichtung erfolgreich war |
Erstellen Sie einen Index
MongoDB verwendet die createIndex()-Methode, um Indizes zu erstellen.
Beachten Sie, dass vor Version 3.0.0 die Indexerstellungsmethode db.collection.ensureIndex() war, und spätere Versionen die Methode db.collection.createIndex() verwendeten.
Erstellen Sie einen einzigen Index
Erstellen Sie einen zusammengesetzten Index
In der Syntax ist der Schlüsselwert das Indexfeld, das du erstellen möchtest, 1 wird angegeben, um einen Index in aufsteigender Reihenfolge zu erstellen, und wenn du einen Index in absteigender Reihenfolge erstellen möchtest, kannst du -1 angeben.Hintergrund, um anzugeben, dass Indizes im Hintergrund erstellt werden, also den optionalen Parameter "Hintergrund" hinzufügen. "Hintergrund" steht standardmäßig auf falsch.
Abfrageindizes
Der Befehl lautet wie folgt:
Löschen Sie den Index
Alle Indizes löschen
Löschen Sie den angegebenen Index
(Ende)
|