sql >> Databasteknik >  >> NoSQL >> MongoDB

Vad betyder det att passa arbetsset i RAM för MongoDB?

"Arbetsuppsättning" är i grunden mängden data OCH index som kommer att vara aktiva/användas av ditt system.

Anta till exempel att du har 1 års data. För enkelhetens skull hänför sig varje månad till 1 GB data som ger 12 GB totalt, och för att täcka varje månads data har du index för 1 GB igen, totalt 12 GB för året.

Om du alltid har tillgång till de senaste 12 månadernas data, är din arbetsuppsättning:12 GB (data) + 12 GB (index) =24 GB.

Men om du faktiskt bara har tillgång till de senaste 3 månadernas data, är din arbetsuppsättning:3GB (data) + 3GB (index) =6GB. I det här scenariot, om du hade 8 GB RAM och sedan började regelbundet komma åt de senaste 6 månadernas data, skulle din arbetsuppsättning börja överskrida ditt tillgängliga RAM-minne och ha en inverkan på prestanda.

Men i allmänhet, om du har tillräckligt med RAM-minne för att täcka mängden data/index som du förväntar dig att ha åtkomst till ofta så kommer du att klara dig.

Redigera:Svar på fråga i kommentarer
Jag är inte säker på att jag följer med, men jag ska försöka svara. För det första är beräkningen för arbetsset en "bollparksfigur". För det andra, om du har ett (t.ex.) 1 GB index på user_id, behöver bara den del av det indexet som är allmänt tillgängligt finnas i RAM (t.ex. anta att 50 % av användarna är inaktiva, då kommer 0,5 GB av indexet att vara oftare krävs/behövs i RAM). I allmänhet, ju mer RAM-minne du har, desto bättre, särskilt eftersom arbetsuppsättningen sannolikt kommer att växa med tiden på grund av ökad användning. Det är här sharding kommer in - dela upp data över flera noder och du kan kostnadseffektivt skala ut. Din arbetsuppsättning delas sedan upp på flera maskiner, vilket innebär att desto mer kan lagras i RAM-minnet. Behöver du mer RAM? Lägg till en annan maskin att skärpa på.



  1. Returnera den faktiska typen av ett fält i MongoDB

  2. Utför regex-frågor med PyMongo

  3. Andel av OR-tillstånd matchade i mongodb

  4. MongoDB - Släpp en databas