sql >> Databáze >  >> NoSQL >> MongoDB

Vysvětlení limitu velikosti dokumentu MongoDB BSON

Za prvé, toto se ve skutečnosti v příští verzi zvyšuje na 8MB nebo 16MB ... ale myslím, že abych to uvedl na pravou míru, Eliot z 10gen (který vyvinul MongoDB) to vyjadřuje nejlépe:

UPRAVIT: Velikost byla oficiálně „zvýšena“ na 16MB

Takže na příkladu vašeho blogu jsou 4 MB ve skutečnosti hodně. Například celý nekomprimovaný text "War ofthe Worlds" má pouze 364 kB (html):http://www.gutenberg.org/etext/36

Pokud je váš příspěvek na blogu tak dlouhý a má tolik komentářů, rozhodně ho nebudu číst :)

U trackbacků, pokud byste jim věnovali 1 MB, mohli byste snadno mít více než 10 000 (pravděpodobně blíže 20 000)

Takže kromě skutečně bizarních situací to bude fungovat skvěle. A ve výjimečném případě nebo spamu si opravdu nemyslím, že byste stejně chtěli 20mb objekt. Myslím, že omezení trackbacků na 15k nebo tak má velký smysl, bez ohledu na výkon. Nebo alespoň speciální pouzdro, pokud se to někdy stane.

-Eliot

Myslím, že by bylo těžké dosáhnout limitu... a postupem času, pokud upgradujete... budete se muset starat méně a méně.

Hlavním bodem limitu je, že nespotřebujete veškerou paměť RAM na vašem serveru (protože musíte načíst všech MB s dokumentu do paměti RAM, když na něj zadáte dotaz.)

Limit je tedy nějaké % běžně použitelné paměti RAM na běžném systému ... která bude rok od roku růst.

Poznámka k ukládání souborů v MongoDB

Pokud potřebujete ukládat dokumenty (nebo soubory) větší než 16MB můžete použít rozhraní GridFS API, které automaticky rozdělí data na segmenty a přenese je zpět k vám (takže se vyhnete problému s limity velikosti/RAM.)

Namísto ukládání souboru do jednoho dokumentu, GridFS rozděluje soubor na části nebo bloky a ukládá každý blok jako samostatný dokument.

GridFS používá k ukládání souborů dvě kolekce. Jedna kolekce ukládá části souborů a druhá ukládá metadata souborů.

Tuto metodu můžete použít k ukládání obrázků, souborů, videí atd. do databáze podobně jako v databázi SQL. Použil jsem to dokonce k ukládání multigigabajtových video souborů.



  1. Více instancí Redis

  2. Plně spravovaný hosting ScaleGrid pro Redis™ je nyní dostupný v Azure

  3. Jak odstraním dokumenty pomocí Node.js Mongoose?

  4. Připojte se k AWS ElastiCache pomocí In-Transit Encryption + Auth z jiného klienta než redis-cli+stunnel