sql >> Database >  >> NoSQL >> MongoDB

Is er een manier om mongodb te dwingen een bepaalde index in ram op te slaan?

Nee. Met MongoDB kan het systeem beheren wat er in het RAM-geheugen is opgeslagen.

Dat gezegd hebbende, zou je de index in RAM moeten kunnen houden door query's uit te voeren tegen de indexen (bekijk vraaghint ) regelmatig om te voorkomen dat ze oud worden.

Nuttige referenties:

Daarnaast geeft Kristina Chodorow dit uitstekende antwoord met betrekking tot de relatie tussen MongoDB Indexes en RAM

UPDATE:

Na de update die de uitvoer .explain() levert, zie ik het volgende:

  • De zoekopdracht bereikt de index.
  • ngescand is het aantal onderzochte items (documenten of indexitems).
  • nscannedObjects is het aantal gescande documenten
  • n is het aantal documenten dat voldoet aan de opgegeven criteria
  • uw dataset bestaat uit 300393 items, wat het totale aantal items in de index is, en de overeenkomende resultaten.

Ik lees dit misschien verkeerd, maar wat ik lees is dat alle items in je verzameling geldige resultaten zijn. Zonder uw gegevens te kennen, lijkt het erop dat elk item de tag "avi" bevat. Het andere dat dit betekent, is dat deze index bijna nutteloos is; indexen bieden de meeste waarde wanneer ze het resulterende veld zo veel mogelijk verkleinen.

Van MongoDB's "Indexeringsadvies en veelgestelde vragen " pagina:



  1. Kan geen werkend meteor.js-project maken op een zwervende doos

  2. Kan geen gegevens ophalen van API met Express NodeJS en MongoDB, laden

  3. 'Veld had een boon nodig van het type dat niet gevonden kon worden.' fout lente rustgevende API met behulp van mongodb

  4. Hoe kan ik deze afschrijvingswaarschuwing in MongoDB verwijderen en waarom gebeurt dit?