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

Langsame Bereichsabfrage für einen Multikey-Index

Habe meine Antwort in dieser Frage gefunden:Reihenfolge von $lt und $gt in der MongoDB-Bereichsabfrage

Mein Index ist ein Multikey-Index (auf tags ) und ich führe eine Bereichsabfrage aus (auf post_time ). Anscheinend , MongoDB kann in diesem Fall nicht beide Seiten des Bereichs als Filter verwenden, also wählt es einfach den $gte aus Klausel, die zuerst kommt. Da meine Untergrenze zufällig die niedrigste post_time ist -Wert beginnt MongoDB mit dem Scannen aller Objekte.

Leider ist dies nicht die ganze Geschichte. Um das Problem zu lösen, habe ich auch Nicht-Multikey-Indizes erstellt, aber MongoDB bestand darauf, den schlechten zu verwenden. Das ließ mich denken, dass das Problem woanders lag. Schließlich musste ich den Multikey-Index löschen und einen ohne die tags erstellen aufstellen. Jetzt ist alles in Ordnung.