sql >> Databasteknik >  >> NoSQL >> MongoDB

Finns det något sätt att tvinga mongodb att lagra visst index i ram?

Nej. MongoDB tillåter systemet att hantera vad som är lagrat i RAM.

Med det sagt bör du kunna behålla indexet i RAM genom att köra frågor mot indexen (kolla in frågetips ) med jämna mellanrum för att de inte ska bli inaktuella.

Användbara referenser:

Dessutom ger Kristina Chodorow detta utmärkta svar angående förhållandet mellan MongoDB Index och RAM

UPPDATERING:

Efter uppdateringen som tillhandahåller .explain()-utgången ser jag följande:

  • Frågan träffar indexet.
  • nscanned är antalet objekt (dokument eller indexposter) som granskats.
  • nscannedObjects är antalet skannade dokument
  • n är antalet dokument som matchar de angivna kriterierna
  • din datauppsättning är 300393 poster, vilket är det totala antalet objekt i indexet och de matchande resultaten.

Jag kanske läser det här fel, men det jag läser är att alla föremål i din samling är giltiga resultat. Utan att känna till dina uppgifter verkar det som att varje objekt innehåller taggen "avi". Det andra som detta betyder är att detta index är nästan värdelöst; index ger mest värde när de arbetar för att begränsa det resulterande fältet så mycket som möjligt.

Från MongoDB:s "Indexeringsråd och vanliga frågor " sida:



  1. Hur man gör kapslade frågor i MongoDb som fungerar som kapslade Sql-selekteringsfrågor

  2. Hur fungerar redis för att hjälpa till att hålla i sessionen i azurblått fönster

  3. mgo time.Time eller boolesk check

  4. MongoDB $minut