sql >> Database >  >> NoSQL >> MongoDB

MongoDB-uitvoeringen - hoeveel databases, collecties?

Benadering 1(A): Een enkele database maken voor alles. (Met enkele collectie)

Pluspunten:

  • Minder onderhoud:back-up maken, databasegebruikers maken, herstellen, enz.

Nadelen:

  • Mogelijk ziet u databaseniveauvergrendeling voor het maken van indexen op een grote database
  • Als u bewerkingen wilt uitvoeren op specifieke sensorgegevens, moet u extra indexen toevoegen om alleen sensorspecifieke verzamelingen op te halen
  • U bent verplicht niet te maken meer dan 64 indexen op één collectie. Hoewel het een slechte indexeringsstrategie klinkt.

Benadering 1(B): Een enkele database maken voor alles. (Met 1 verzameling voor elke sensor)

Pluspunten:

  • Minder onderhoud:back-up maken, databasegebruikers maken, herstellen, enz.
  • Minimaliseert de noodzaak voor het maken van indexen om sensorspecifieke gegevens uit de gehele monolithische verzameling te identificeren
  • Elke sensorspecifieke zoekopdracht wordt alleen getarget op een specifieke verzameling. Vereist geen grote werkset in het geheugen te trekken in vergelijking met een enkele grote verzameling.
  • Het bouwen van een index op een relatief kleinere collectie is beter mogelijk dan die van de grote collectie in een enkele DB

Nadelen:

  • Het kan zijn dat u te veel indexen maakt. (Som van het totale aantal indexen op alle collecties).
  • Voor een groot aantal indexen is meer onderhoud nodig.
  • WiredTiger maakt intern 1 bestand voor een verzameling en 1 voor index. Als uw use case groeit met een groot aantal sensoren. Het kan zijn dat u een limiet van 64K voor open bestanden gebruikt.

Wat de prestaties betreft, maakt het uit of ik de gegevens op elke sensor of op metrische gegevens verdeel?

  • Dit hangt af van de toegangspatronen die van uw analyse-app worden verwacht.

Wat de prestaties betreft, moet ik een verzameling maken alleen voor de informatie over de sensoren en vervolgens verzamelingen voor gegevens of gewoon de twee samenvoegen in dezelfde verzameling?

  • Het kan nodig zijn om een ​​verzameling van sensormetadata en sensordata aan te maken. Het minimaliseert dubbele sensormetadata in elke verzamelde sensordata.

  • Misschien vind je het leuk om Williams blogbericht hier over het ontwerpen van dit patroon.

Zoals altijd is het beter om een ​​voorbeeldschema te ontwerpen en uw zoekopdrachten in uw testomgeving te testen.




  1. Mongoose Query om een ​​array te filteren en gerelateerde inhoud te vullen

  2. Introductie van Apache HBase Medium Object Storage (MOB) verdichtingspartitiebeleid

  3. PyMongo Samengevoegd hoe u uitvoeringsstatistieken kunt krijgen

  4. Aantal exemplaren van string in een veld tellen in documenten die zijn gegroepeerd op een ander veld in MongoDB?