sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongodb:Prestandapåverkan av $HINT

Kan du ange vilket sammansatt index du har skapat. Jag har inte mycket rykte så jag kunde inte fråga detta i kommentaren. Men jag har ett möjligt svar på din fråga. Mongo använder en egenskap som heter "Equality-Sort-Range" som beter sig på ett annat sätt. Tänk på situationen nedan - Du har få dokument med fälten {namn:sträng, pin:sexsiffrigt nummer, SSN:niosiffrigt nummer} och du har två index som - {namn:1, pin:1, ssn:1} och andra index är {namn:1, ssn :1, pin :1} överväg nu nedanstående frågor:

  1. db.test.find({name: "XYZ", pin: 123456"}).sort({ssn: 1}) Den här frågan kommer att använda det första indexet eftersom vi har sammansatt index i fortsättningen. Namn, pin, ssn är en fortsättning.
  2. db.test.find({name: "XYZ", pin: {$gt :123456"}}).sort({ssn: 1}) Du förväntar dig att det första indexet kommer att användas i den här frågan. Men överraskande nog kommer sekunders index att användas av den här frågan eftersom den har en intervalloperation på pin.

Egenskapen Equality-sort-range säger att frågeplaneraren kommer att använda indexet på fältet som tjänar - "equality-sort-range" bättre. Den andra frågan har intervall på stift så det andra indexet kommer att användas medan den första frågan har likadana på alla fält så det första indexet kommer att användas.




  1. Kör Redis på Travis CI

  2. MongoDB vs. Redis vs. Cassandra för en snabbskrivande, temporär radlagringslösning

  3. Hur filtrerar man dokument baserat på en inbäddad array?

  4. Migrera MongoDB till DynamoDB, del 1