Tillvägagångssätt 1(A): Skapa en enda databas för allt. (Med en samling)
Proffs:
- Mindre underhåll:Säkerhetskopiering, skapande av databasanvändare, återställning etc.
Nackdelar:
- Du kanske ser databasnivålås för att skapa index på stor databas
- För att utföra operationer på specifik sensordata måste du lägga till ytterligare index för att bara hämta sensorspecifik samling
- Du är skyldig att skapa inte mer än 64 index på en enda samling. Även om det låter dålig indexeringsstrategi.
Tillvägagångssätt 1(B): Skapa en enda databas för allt. (Med 1 samling för varje sensor)
Proffs:
- Mindre underhåll:Säkerhetskopiering, skapande av databasanvändare, återställning etc.
- Minimerar behovet av att skapa index för att identifiera sensorspecifik data från hela monolitisk samling
- Varje sensorspecifik fråga kommer endast att riktas mot en specifik samling. Kräver inte att dra ett stort arbetsset till minnet jämfört med en enda stor samling.
- Att bygga index på relativt mindre samlingar är mer genomförbart än för den stora samlingen i en enda DB
Nackdelar:
- Det kan sluta med att du skapar för många index. (Summa av totalt antal index på alla samlingar).
- Mer underhåll krävs för ett stort antal index.
- WiredTiger skapar 1 fil för en samling och 1 för index internt. Om ditt användningsfall växer med ett stort antal sensorer. Du kan sluta använda 64K öppna filgräns.
Prestandamässigt, spelar det någon roll om jag delar upp data efter varje sensor eller efter mätvärden?
- Detta beror på de åtkomstmönster som förväntas från din analysapp.
Prestandamässigt, ska jag göra en insamling bara för sensorinformation och sedan insamlingar för data eller bara slå samman de två i samma samling?
-
Det kan vara nödvändigt att skapa en samling för sensormetadata och sensordata. Det kommer att minimera dubblering av sensormetadata i varje insamlad sensordata.
-
Du kanske gillar att läsa Williams blogginlägg här om att designa det här mönstret.
Som alltid är det bättre att utforma ett exempelschema och testa dina frågor i din testmiljö.