sql >> Database >  >> NoSQL >> MongoDB

Mongodb:meerdere collecties of één grote collectie met index

Van mongo-documenten hier:gegevensmodellering

In bepaalde situaties kunt u ervoor kiezen om informatie in meerdere verzamelingen op te slaan in plaats van in één verzameling.

Overweeg een voorbeeldverzameling van logboeken waarin logboekdocumenten worden opgeslagen voor verschillende omgevingen en toepassingen. De logboekverzameling bevat documenten van de volgende vorm:

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

Als het totaal aantal documenten laag is, kunt u de documenten per type inzamelen. Overweeg voor logboeken om afzonderlijke logboekverzamelingen te onderhouden, zoals logs.dev en logs.debug. De verzameling logs.dev zou alleen de documenten bevatten die betrekking hebben op de ontwikkelomgeving.

Over het algemeen heeft het hebben van een groot aantal collecties geen significante prestatievermindering en resulteert in zeer goede prestaties. Verschillende verzamelingen zijn erg belangrijk voor batchverwerking met hoge doorvoer.

Sprak ook met een 10gen-man. Voor echt grote collecties noemde hij meerdere voordelen voor het opsplitsen in kleinere, meer specifieke collecties. Zijn opmerking over het gebruik van één verzameling voor alle gegevens en het gebruik van een index was:

Alleen omdat je iets kunt doen, wil nog niet zeggen dat je het moet doen. Modelleer uw gegevens op de juiste manier. is misschien gemakkelijk op te slaan in één grote collectie en index, maar dat is niet altijd de beste aanpak.




  1. Publiceer abonneren met nodejs en redis(node_redis)

  2. Sidekiq verwerkt wachtrij niet

  3. Django Celery Elastic Beanstalk bewaakt geen dergelijke procesfout

  4. MongoDB als Windows-service en replicaSet instellen