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

Forstå MongoDB BSON Dokumentstørrelsesgrænse

For det første bliver dette faktisk hævet i den næste version til 8MB eller 16MB ... men jeg tror for at sætte dette i perspektiv, så siger Eliot fra 10gen (som udviklede MongoDB) det bedst:

EDIT: Størrelsen er officielt blevet 'forhøjet' til 16MB

Så i dit blogeksempel er 4MB faktisk en hel masse.. For eksempel er den fulde ukomprimerede tekst af "War ofthe Worlds" kun 364k (html):http://www.gutenberg.org/etext/36

Hvis dit blogindlæg er så langt med så mange kommentarer, så har jeg ikke tænkt mig at læse det :)

For trackbacks, hvis du dedikerede 1MB til dem, kunne du nemt have mere end 10k (sandsynligvis tættere på 20k)

Så bortset fra virkelig bizarre situationer, vil det fungere fantastisk. Og i undtagelsestilfældet eller spam, tror jeg virkelig ikke, du vil have et 20mb objekt alligevel. Jeg synes, at det giver god mening at begrænse trackbacks til 15.000 eller deromkring, uanset hvad for ydeevne. Eller i det mindste et specielt kabinet, hvis det nogensinde skulle ske.

-Eliot

Jeg tror, ​​du ville være ret hårdt presset for at nå grænsen ... og med tiden, hvis du opgraderer ... vil du skulle bekymre dig mindre og mindre.

Hovedpointen med grænsen er, at du ikke bruger al RAM på din server (da du skal indlæse alle MB s af dokumentet til RAM, når du forespørger det.)

Så grænsen er nogle % af normal brugbar RAM på et almindeligt system ... som vil fortsætte med at vokse år for år.

Bemærkning om lagring af filer i MongoDB

Hvis du har brug for at gemme dokumenter (eller filer) større end 16MB du kan bruge GridFS API, som automatisk opdeler dataene i segmenter og streamer dem tilbage til dig (og dermed undgår problemet med størrelsesbegrænsninger/RAM.)

I stedet for at gemme en fil i et enkelt dokument, opdeler GridFS filen i dele eller bidder og gemmer hver chunk som et separat dokument.

GridFS bruger to samlinger til at gemme filer. En samling gemmer filbidderne, og den anden gemmer filmetadata.

Du kan bruge denne metode til at gemme billeder, filer, videoer osv. i databasen på samme måde som i en SQL-database. Jeg har brugt dette til endda at gemme videofiler med flere gigabyte.



  1. MongoDB:mongoimport mister forbindelsen ved import af store filer

  2. Skub genstande ind i mongo-arrayet via mongoose

  3. Konfiguration af redis til konsekvent at fjerne ældre data først

  4. Laravel Redis konfiguration