sql >> Databasteknik >  >> NoSQL >> MongoDB

Total MongoDB-lagringsstorlek

Det korta svaret är:du kan inte, inte enbart baserat på avg. dokumentstorlek (åtminstone inte på något korrekt sätt).

För att förklara mer utförligt:

Det utrymme som behövs på disken är inte bara en funktion av den genomsnittliga dokumentstorleken. Det finns också det utrymme som behövs för alla index du skapar. Sedan finns det utrymme som behövs om du utlöser dessa rörelser (trots utfyllnad, detta händer) - det utrymmet placeras på en lista för att återanvändas men beroende på vilken data du sedan infogar, kanske det inte är möjligt att återanvänd det utrymmet.

Du kan också lägga till det faktum att förallokering kommer att innebära att en handfull dokument ibland kommer att öka ditt utrymmesutnyttjande på disken med ~2GB när en ny datafil allokeras. Naturligtvis, med tillräcklig data, kommer detta i huvudsak att vara ett avrundningsfel, men det är värt att ha i åtanke.

Det enda sättet att uppskatta denna typ av data-till-storlek-förhållande, förutsatt ett konsekvent användningsmönster, är att trenda det över tid för ditt specifika användningsfall och spåra diskutrymmesanvändningen jämfört med de data som infogas (antal dokument kan vara bättre än datavolymen beroende på variationen av dokumentstorlek).

På samma sätt, om du spårar insättningshastigheten, dokumentstorleken och utrymmet som du fått tillbaka från en omsynkronisering/reparation. FYI - du kan synkronisera om en sekundär från början för att få en "ny" kopia av datafilerna istället för att köra en reparation, vilket kan vara mindre störande och använda mindre utrymme beroende på din inställning.




  1. $pull flera objekt i Mongo fungerar inte

  2. Det finns ett sätt att upprätthålla referensintegritet i MongoDB

  3. Node.js - Session kvarstår inte genom res.redirect()

  4. Redis vs. Memcachad