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

Index in MongoDB

Index ist ein typischer Weg, um Abfragen in einem normalen Datenbanksystem zu beschleunigen. Es gibt keinen Unterschied zwischen MongoDB und einem dokumentbasierten Datenbanksystem. Dieser Artikel gibt einen Einblick in den Index in MongoDB für die Abfrageoptimierung.

Index in Mongo:

Standard

_id ist ein ObjectId-Objekt, 12-Byte-BSON-Typ, das die Eindeutigkeit innerhalb der Sammlung garantiert. Die ObjectId wird basierend auf Zeitstempel, Maschinen-ID, Prozess-ID und einem prozesslokalen inkrementellen Zähler generiert.

Einzelfeld

Bei einem Einzelfeldindex und Sortiervorgängen spielt die Sortierreihenfolge (d. h. aufsteigend oder absteigend) des Indexschlüssels keine Rolle, da MongoDB den Index in beide Richtungen durchlaufen kann. Der Wert des Index ist die Art des Index. Beispielsweise gibt 1 die aufsteigende Reihenfolge und -1 die absteigende Reihenfolge an.

db.friends.createIndex( { "name" : 1 } )

Zusammengesetztes Feld

Die Reihenfolge der in einem zusammengesetzten Index aufgeführten Felder ist von Bedeutung. Wenn ein zusammengesetzter Index beispielsweise aus { userid:1, score:-1 } besteht, sortiert der Index zuerst nach userid und dann innerhalb jedes userid-Werts nach score.

db.products.createIndex( { "item": 1, "stock": 1 } )

Mehrfachschlüssel

MongoDB verwendet mehrere Indizes, um den Inhalt in einem Array zu indizieren. MongoDB erstellt separate Indexeinträge für jedes Element des Arrays. Sie müssen nicht explizit mehrere Schlüssel erstellen.

Textindex

Eine Sammlung kann höchstens einen Textindex haben.
Leistungskosten für Textindex:
Textindizes können groß sein. Sie enthalten einen Indexeintrag für jedes eindeutige Wort mit Nachstamm in jedem indizierten Feld für jedes eingefügte Dokument.
Textindizes wirken sich auf den Einfügungsdurchsatz aus, da MongoDB einen Indexeintrag für jedes eindeutige Wort mit Poststamm in jedem indizierten Feld jedes neuen Quelldokuments hinzufügen muss.

db.reviews.createIndex( { comments: "text" } )

Hash-Index

Fragen Sie den Inhalt anhand seines Hash-Werts ab. Der Hash ist eine Funktion, die anhand ihres Wertes berechnet wird. Der Hash-Wert ist als eindeutiger Wert ausgelegt. Der einzige Vorteil ist, dass es so schnell ist, dass höchstens O (1) benötigt wird, aber per Vertrag der normale binäre Suchbaum O (Log (N)) benötigt. Hash wird theoretisch schneller sein als die normale Implementierung eines binären Suchbaums. Aber der Nachteil ist, dass der Hash-Index, der die Bereichssuche durchführt, extrem langsam ist als der normale Index.

Dies ist ein Beispiel in Python, um einen Hash-Index zu erstellen

db.active.createIndex( { a: "hashed" } )