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

Mongodb:více kolekcí nebo jedna velká kolekce s indexem

Z mongo docs zde:datové modelování

V určitých situacích se můžete rozhodnout ukládat informace do několika kolekcí, nikoli do jedné kolekce.

Zvažte vzorové protokoly kolekce, které ukládají dokumenty protokolu pro různá prostředí a aplikace. Kolekce protokolů obsahuje dokumenty v následujícím tvaru:

{ log:"dev", ts:..., info:... } { log:"debug", ts:..., info:...}

Pokud je celkový počet dokumentů nízký, můžete dokumenty seskupit do kolekce podle typu. U protokolů zvažte udržování odlišných kolekcí protokolů, jako jsou logs.dev a logs.debug. Kolekce logs.dev by obsahovala pouze dokumenty související s vývojovým prostředím.

Obecně platí, že velký počet sbírek nemá žádné významné snížení výkonu a vede k velmi dobrému výkonu. Distinctcollections jsou velmi důležité pro vysokovýkonné dávkové zpracování.

Také mluvil s 10gen chlapem. U opravdu velkých sbírek vyjmenoval několik výhod pro rozdělení do menších specifičtějších sbírek. Jeho komentář k použití jedné kolekce pro všechna data a použití indexu byl:

To, že něco umíte, neznamená, že byste to měli dělat. Vhodně modelujte svá data. může být snadné uložit do jedné velké kolekce a indexu, ale to není vždy nejlepší přístup.




  1. Upgrade starší mongo databáze po neúmyslném upgradu mongo verze

  2. Průsečík indexu MongoDB

  3. MongoDB Write Concern:3 Must Know Caveats

  4. ServiceStack.Net Redis:Ukládání souvisejících objektů vs. ID souvisejících objektů