sql >> Database teknologi >  >> NoSQL >> MongoDB

Er der en måde at tvinge mongodb til at gemme et bestemt indeks i ram?

Nej. MongoDB tillader systemet at styre, hvad der er gemt i RAM.

Med det sagt burde du være i stand til at beholde indekset i RAM ved at køre forespørgsler mod indekserne (tjek forespørgselstip ) med jævne mellemrum for at forhindre, at de bliver forældede.

Nyttige referencer:

Derudover giver Kristina Chodorow dette fremragende svar vedrørende forholdet mellem MongoDB-indekser og RAM

OPDATERING:

Efter opdateringen, der giver .explain()-outputtet, ser jeg følgende:

  • Forespørgslen rammer indekset.
  • nscanned er antallet af undersøgte elementer (dokumenter eller indeksposter).
  • nscannedObjects er antallet af scannede dokumenter
  • n er antallet af dokumenter, der matcher de angivne kriterier
  • dit datasæt er 300393 poster, hvilket er det samlede antal elementer i indekset og de matchende resultater.

Jeg læser måske forkert, men det, jeg læser, er, at alle genstande i din samling er gyldige resultater. Uden at kende dine data, ser det ud til, at hvert element indeholder tagget "avi". Den anden ting, det betyder, er, at dette indeks er næsten ubrugeligt; indekser giver mest værdi, når de arbejder på at indsnævre det resulterende felt så meget som muligt.

Fra MongoDB's "Indekseringsråd og ofte stillede spørgsmål " side:



  1. Mongo DB:Få alle dokumenter indsat efter det sidst kendte

  2. Mongoose Ændring af skemaformat

  3. HDFS Tutorial – En komplet introduktion til HDFS for begyndere

  4. Aggregerer i lokal tidszone i mongodb