sql >> Databasteknik >  >> NoSQL >> MongoDB

Cachning av upprepade frågeresultat i MongoDB

Jag vet inte vem som sa det men MongoDB har ett sätt att cache-förfrågningar, faktiskt använder det OS:s LRU för att cache eftersom det inte gör minneshantering själv.

Så länge som din arbetsuppsättning passar in i LRU:n utan att operativsystemet behöver söka upp det eller byta hela tiden bör du oftast läsa den här frågan från minnet. Så, ja, MongoDB kan cache men tekniskt sett gör det det inte; OS gör det.

Cachningsmekanismer för att lösa den här typen av problem är desamma för de flesta tekniker oavsett om de är av MongoDB eller SQL. Det här spelar förstås bara roll om det är ett problem, du mikrooptimerar förmodligen om du frågar mig; såvida du inte får trafik av typen Facebook eller Google eller Youtube.

Cachningsämnet går in på ett enormt ämne som sträcker sig från cachning av frågor i antingen föraggregerade MongoDB/Memcache/Redis etc till cachning av HTML och andra webbresurser för att göra så lite arbete som möjligt på serversidan.

Ditt scenario, personligen som jag sa, låter som om du tänker fel om den bortkastade datorkraften. Även om du skulle cache den här frågan i en annan samling/teknik skulle du förmodligen använda samma mängd kraft och resurser för att hämta resultatet från den tekniken än om du bara inte brydde dig. Men det antagandet beror på att du har rätt index, schema, inställningar etc.

Jag rekommenderar att du läser några länkar om bra schemadesign och indexskapande:

Ja, jag tror att genom att försöka oroa dig för query caching du optimerar för tidigt, speciellt om du inte vill ta fart, vad som skulle vara 90% av belastningen på din server varje gång; laddar själva sidan.

Jag skulle fokusera på ditt schema och ditt index och sedan oroa mig för cachelagring om du verkligen behöver det.



  1. Kan ett listfält vara en skärvnyckel i MongoDB?

  2. Hur man lagrar byte[]-bild i mongodb för Doocr-processen

  3. PHP mongodb drivrutin kontrollera anslutning

  4. Mongoose drar ObjectId från arrayen