sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB-sorteringen är extremt långsam även på indexerade fält

Du bör köra explain mot din fråga hjälper det dig att ta reda på vad som händer.

Det är troligt att Mongo inte använder ett index för både filtrering och sortering. När du använder en $or , kan den använda flera index för att matcha alternativen. Men när du lägger till en sort det kan göra att den inte använder index tillgängliga för filtrering.

När du vill sortera på en fråga måste du se till att det sorterade fältet finns i indexet du vill träffa (senast, annars kan det inte använda det för att sortera).

Du kanske kan påskynda det genom att skicka ett indextips också. Jag vet inte hur många dokument din fråga matchar, men om det är ett litet antal och du ser till att de initiala villkoren träffar ett index, sortera på _id kan göras snabbt.




  1. MongoDB Aggregation:Beräkna löpande summor från summan av tidigare rader

  2. MongoDB:Får inte korrekt resultat med operatorn $geoWithin

  3. Redis problem med flera insättningar

  4. Vad är det rätta sättet att göra en synkron MongoDB-fråga i Node.js?