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

Mongodb:più raccolte o una grande raccolta con indice

Da mongo docs qui:modellazione dei dati

In determinate situazioni, potresti scegliere di archiviare le informazioni in più raccolte anziché in un'unica raccolta.

Si consideri una raccolta di log di esempio che archivia i documenti di registro per vari ambienti e applicazioni. La raccolta dei log contiene documenti della seguente forma:

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

Se il numero totale di documenti è basso è possibile raggruppare i documenti nella raccolta per tipo. Per i log, considera la possibilità di mantenere raccolte di log distinte, come logs.dev e logs.debug. La raccolta logs.dev conterrà solo i documenti relativi all'ambiente di sviluppo.

In genere, avere un numero elevato di raccolte non comporta una penalizzazione significativa delle prestazioni e si traduce in prestazioni molto buone. Le raccolte distinte sono molto importanti per l'elaborazione batch ad alta velocità.

Ha parlato anche con un ragazzo 10gen. Per le collezioni davvero grandi ha elencato molteplici vantaggi per la separazione in raccolte più piccole e più specifiche. Il suo commento sull'utilizzo di una raccolta per tutti i dati e sull'utilizzo di un indice è stato:

Solo perché puoi fare qualcosa non significa che dovresti. Modella i tuoi dati in modo appropriato. può essere facile da archiviare in un'unica raccolta e indice di grandi dimensioni, ma non è sempre l'approccio migliore.