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

Dokumentdatabaser:Redundante data, referencer osv. (Specifikt MongoDB)

Der er grundlæggende to scenarier:frisk og forældet .

Friske data

Det er nemt at gemme duplikerede data. Vedligeholdelse af duplikatdata er den svære del. Så den nemmeste ting at gøre er at undgå vedligeholdelse, ved simpelthen ikke at gemme nogen duplikerede data til at begynde med. Dette er primært nyttigt, hvis du har brug for friske data . Gem kun referencerne, og forespørg samlingerne, når du har brug for at hente oplysninger.

I dette scenarie vil du have nogle overhead på grund af de ekstra forespørgsler. Alternativet er at spore alle placeringer af duplikerede data og opdatere alle forekomster på hver opdatering. Dette involverer også overhead, især i N-til-M-relationer som den, du nævnte. Så uanset hvad, du vil har nogle overhead, hvis du har brug for friske data. Du kan ikke få det bedste fra begge verdener.

Uaktuelle data

Hvis du har råd til at have forældede data, bliver tingene meget nemmere. For at undgå forespørgselsomkostninger kan du gemme duplikerede data. For at undgå at skulle vedligeholde duplikerede data, vil du ikke gemme duplikerede data. I hvert fald ikke aktivt .

I dette scenarie vil du også kun gemme referencerne mellem dokumenter. Brug derefter et periodisk kort-reducer job til at generere duplikatdata. Du kan derefter forespørge på det enkelte kort-reducerende resultat i stedet for separate samlinger. På denne måde undgår du forespørgslens overhead, men du behøver heller ikke at jage dataændringer.

Oversigt

Gem kun referencer til andre dokumenter. Hvis du har råd til forældede data, skal du bruge periodiske kortreducerende job til at generere dublerede data. Undgå vedligeholdelse dublerede data; det er komplekst og udsat for fejl.



  1. Hvordan søger man efter et nøglemønster i redis-hash?

  2. MongoDB + C# driver + forespørgselsarray af elementer, hvor hvert arrayelement indeholder underdokument til forespørgsel på

  3. Returner kun matchede underdokumentelementer inden for et indlejret array

  4. Indstilling af et dynamisk felt i Ohm / Redis