sql >> Database >  >> NoSQL >> MongoDB

Mongodb:prestatie-impact van $HINT

Kunt u alstublieft de samengestelde index specificeren die u heeft aangemaakt. Ik heb niet veel reputatie, dus ik kon dit niet in commentaar stellen. Maar ik heb wel een mogelijk antwoord op uw vraag. Mongo gebruikt een eigenschap genaamd "Equality-Sort-Range" die zich op een andere manier gedraagt. Overweeg de onderstaande situatie:u hebt enkele documenten met velden {naam:string, pin:zescijferig nummer, SSN:negencijferig nummer} en u hebt twee indices als - {naam:1, pin:1, ssn:1} en tweede index is {name:1, ssn :1, pin :1} bekijk nu onderstaande vragen:

  1. db.test.find({name: "XYZ", pin: 123456"}).sort({ssn: 1}) Deze query gebruikt de eerste index omdat we een samengestelde index hebben als vervolg. Naam, pin, ssn volgen.
  2. db.test.find({name: "XYZ", pin: {$gt :123456"}}).sort({ssn: 1}) U verwacht dat de eerste index in deze query wordt gebruikt. Maar verrassend genoeg wordt de secondenindex door deze query gebruikt omdat deze een bereikbewerking op pin heeft.

De eigenschap Equality-sort-range zegt dat de queryplanner de index op het veld zal gebruiken die - "equality-sort-range" beter dient. De tweede zoekopdracht heeft een bereik op de pin, dus de tweede index wordt gebruikt, terwijl de eerste zoekopdracht gelijkheid heeft op alle velden, dus de eerste index wordt gebruikt.




  1. MongoDB Aggregation, is er een manier om uitvoeringsstatistieken van een samengestelde cursor te krijgen?

  2. wacht tot alle beloften eindigen in nodejs met bluebird

  3. Afronding op 2 decimalen in mongodb

  4. Mongoose Friends-plug-in installeren met MeanJS