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

Samlet MongoDB lagerstørrelse

Det korte svar er:du kan ikke, ikke udelukkende baseret på gns. dokumentstørrelse (i hvert fald ikke på nogen nøjagtig måde).

For at forklare mere detaljeret:

Den nødvendige plads på disken er ikke blot en funktion af den gennemsnitlige dokumentstørrelse. Der er også den nødvendige plads til alle indekser, du opretter. Så er der den nødvendige plads, hvis du udløser disse bevægelser (på trods af udfyldning sker dette) - den plads er placeret på en liste, der skal genbruges, men afhængigt af de data, du efterfølgende indsætter, er det muligvis ikke muligt at genbrug den plads.

Du kan også tilføje, at forhåndsallokering vil betyde, at en håndfuld dokumenter lejlighedsvis vil øge din pladsudnyttelse på disken med ~2 GB, efterhånden som en ny datafil tildeles. Med tilstrækkelige data vil dette naturligvis være en afrundingsfejl, men det er værd at huske på.

Den eneste måde at estimere denne type data i forhold til størrelsesforhold på, under forudsætning af et ensartet brugsmønster, er at trende det over tid for din specifikke brug og spore diskpladsforbruget i forhold til de indsatte data (antal dokumenter kan være bedre end datavolumen afhængigt af variationen i dokumentstørrelsen).

På samme måde, hvis du sporer indsættelseshastigheden, dokumentstørrelsen og den plads, der er vundet tilbage fra en gensynkronisering/reparation. FYI - du kan gensynkronisere en sekundær fra bunden for at få en "frisk" kopi af datafilerne i stedet for at køre en reparation, som kan være mindre forstyrrende og bruge mindre plads afhængigt af din opsætning.




  1. Mongo:tæl antallet af ordforekomster i et sæt dokumenter

  2. Mongoose JS findOne returnerer altid null

  3. Funktion ikke understøttet:$tekst i dokument db med mongodb 3.6-kompatibilitet

  4. batchSize feltnavn ignoreret i Field Projection