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

Fordele og ulemper ved at bruge MongoDB i stedet for MS SQL Server

Jeg er selv en starter på NoSQL-databaser. Så jeg svarer på dette på bekostning af potentielle nedstemte stemmer, men det vil være en fantastisk lærerig oplevelse for mig.

  • for at fortælle, om MongoDB er god til at opbevare sådanne data, som til sidst vil blive forespurgt i forhold til tidsintervaller (f.eks. hente alle billeder af et bestemt kamera mellem en bestemt time)? Nogen forslag til dokumentbaseret skemadesign til min sag?

MongoDB er en dokumentorienteret db, og den er god til at forespørge indenfor et aggregat (man kalder det dokument). Da du allerede gemmer hvert kameras data i sin egen tabel, vil du i MongoDB have en separat samling oprettet til hvert kamera. Sådan gør du du udfører datointervalforespørgsler.

  • Hvad skal specifikationerne for serveren (CPU, RAM, Disk) være? nogen forslag?

Alle NoSQL-databaser er bygget til at skalere ud på råvarehardware. Men som du har stillet spørgsmålet, tænker du måske på at forbedre ydeevnen ved at opskalere . Du kan starte med en fornuftig maskine, og efterhånden som belastningen stiger, kan du blive ved med at tilføje flere servere (udskalering). Du behøver ikke at planlægge og købe en avanceret server.

  • Skal jeg overveje Sharding/replikering for dette scenarie (mens jeg overvejer ydeevnen skriftligt for at synkronisere replikasæt)?

MongoDB låser hele db for en enkelt skrivning (men giver efter for andre operationer) og er beregnet til systemer, der har flere læsninger end skrivninger. Så det afhænger af, hvordan dit system er. Der er flere måder at skære på og bør være domænespecifikke. Et generisk svar er ikke muligt. Der kan dog gives nogle eksempler som f.eks. skæring efter geografi, efter grene osv.

Læs også En almindelig engelsk introduktion til CAP-sætning

Opdateret med svar på kommentaren om sønderdeling

Ifølge deres dokumentation , Du bør overveje at implementere en sharded klynge, hvis:

Så baseret på det sidste punkt ja. Auto-sharding-funktionen er bygget til at skalere skrivninger. I så fald har du en skrivelås pr. shard , ikke per database . Men mit er et teoretisk svar. Jeg foreslår, at du tager konsultation fra 10gen.com-gruppen.



  1. Mongodb Forsøger at få udvalgte felter til at returnere fra aggregat

  2. Trin til at forbinde MongoDB og Solr ved hjælp af DataImportHandler

  3. apollostack/graphql-server - hvordan man får de felter, der anmodes om i en forespørgsel fra resolver

  4. Hvordan returnerer jeg rå HTML fra en visning i Pyramid?