sql >> Database >  >> NoSQL >> MongoDB

Mongodb eenvoudige prefix-query met regex en sorteren is traag

De scanAndOrder: true in de uitvoer uitleggen geeft aan dat de query de documenten moet ophalen en ze vervolgens in het geheugen moet sorteren voordat de uitvoer wordt geretourneerd. Dit is een dure operatie en zal een impact hebben op de prestaties van uw zoekopdracht.

Het bestaan ​​van scanAndOrder: true evenals het verschil in nscanned een n in de explain-output geeft aan dat de query geen optimale index gebruikt. In dit geval lijkt het nodig om een ​​collectiescan uit te voeren. U kunt dit probleem mogelijk verhelpen door de indexsleutels op te nemen in uw sort criteria. Uit mijn testen:

db.posts.find({hashtags: /^noticias/ }).limit(15).sort({hashtags:1, rank : -1}).explain()

Vereist geen scan en bestelling, en retourneert n en nscanned van het aantal records dat u zoekt. Dit betekent ook sorteren op de hashtags sleutel, die al dan niet nuttig voor u kan zijn, maar de prestatie van de zoekopdracht zou moeten verbeteren.




  1. Waar is de NullPointer-uitzondering precies?

  2. ScaleGrid kondigt MongoDB-hostingservices aan in Canada

  3. hoe te controleren of een document is bijgewerkt of in MongoDB is ingevoegd

  4. Verzamelobject kan niet worden opgeroepen fout met PyMongo