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

Wenn sich in MongoDB ein Index auf 3 Feldern befindet, können wir diesen Index verwenden, wenn wir 2 Felder abfragen? (Platzhalter auf dem 3. Feld)

Dies sind B-Tree-Indizes, sodass sie für eine Präfix-Teilmenge der beteiligten Spalten verwendet werden können. Wenn Sie die führenden Spalten nicht haben, ist ein Indexbereichsscan (die Operation, für die ein B-Tree-Index hauptsächlich verwendet wird) nicht mehr möglich. Es kann andere Möglichkeiten geben, den Index dennoch zu verwenden (Oracle bietet zum Beispiel schnelle vollständige Scans und Scans überspringen), aber normalerweise wird der Index nicht verwendet.

Diese Argumentation gilt für alles, was B-Tree-Indizes verwendet, relationale DB oder nicht.

Auch dies hängt nicht vom Typ der Spalte ab, sondern von der Reihenfolge der Spalten im Index. Sie müssen die führenden Spalten haben (in Ihrem Fall benötigen Sie page_type). Wenn Sie viele Abfragen ohne Seitentyp haben, sollten Sie den Index mit Seitentyp als letzte Spalte neu erstellen (was natürlich auch negative Auswirkungen auf andere Abfragen haben kann). Im Allgemeinen müssen Sie wissen, welche Art von Abfragen Sie ausführen werden, bevor Sie die Indizes entwerfen können.