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

Die MongoDB-Sortierung ist selbst bei indizierten Feldern extrem langsam

Sie sollten explain ausführen gegen Ihre Anfrage, es wird Ihnen helfen, herauszufinden, was los ist.

Es ist wahrscheinlich, dass Mongo keinen Index sowohl zum Filtern als auch zum Sortieren verwendet. Wenn Sie ein $or verwenden , kann es mehrere Indizes verwenden, um die Optionen abzugleichen. Aber wenn Sie eine sort hinzufügen Es kann dazu führen, dass es keine Indizes verwendet, die zum Filtern verfügbar sind.

Wenn Sie nach einer Abfrage sortieren möchten, müssen Sie sicherstellen, dass sich das sortierte Feld in dem Index befindet, den Sie treffen möchten (letztes, oder es kann es nicht zum Sortieren verwenden).

Sie können es möglicherweise beschleunigen, indem Sie auch einen Indexhinweis übergeben. Ich weiß nicht, mit wie vielen Dokumenten Ihre Abfrage übereinstimmt, aber wenn es sich um eine kleine Anzahl handelt und Sie sicherstellen, dass die Anfangsbedingungen einen Index treffen, sortieren Sie nach _id ist schnell erledigt.