sql >> Databáze >  >> NoSQL >> MongoDB

Klady a zápory používání MongoDB místo MS SQL Server

Sám jsem začátečník s databázemi NoSQL. Takže na to odpovídám na úkor potenciálních hlasů proti, ale bude to pro mě skvělá zkušenost.

  • zjistit, zda je MongoDB dobré pro uchovávání takových dat, která budou nakonec dotazována na časové rozsahy (např. získat všechny snímky konkrétní kamery mezi určitou hodinou)? Nějaké návrhy ohledně návrhu schématu založeného na dokumentu pro můj případ?

MongoDB je databáze orientovaná na dokumenty a je dobrá v dotazování v rámci agregát (říkáte tomu dokument). Protože již ukládáte data každé kamery do její vlastní tabulky, v MongoDB budete mít samostatnou sbírku vytvořené pro každou kameru. Zde je návod provádíte dotazy na časové období.

  • Jaké by měly být specifikace serveru (CPU, RAM, Disk)? nějaký návrh?

Všechny databáze NoSQL jsou navrženy tak, aby byly škálovatelné na komoditní hardware. Ale podle toho, jak jste otázku položili, možná uvažujete o zlepšení výkonu rozšířením . Můžete začít s rozumným strojem a jak se zatížení zvyšuje, můžete neustále přidávat další servery (scaling-out). Nemusíte plánovat a kupovat špičkový server.

  • Mám u tohoto scénáře zvážit sdílení/replikaci (s ohledem na výkon při zápisu pro synchronizaci sad replik)?

MongoDB uzamkne celou databázi pro jeden zápis (ale výnosy pro jiné operace) a je určen pro systémy, které mají více čtení než zápisů. Záleží tedy na tom, jaký máte systém. Existuje několik způsobů sdílení a měly by být specifické pro doménu. Obecná odpověď není možná. Některé příklady však mohou být uvedeny jako sharding podle geografie, podle větví atd.

Přečtěte si také Srozumitelný anglický úvod do věty CAP

Aktualizováno o odpověď na komentář o sdílení

Podle jejich dokumentace , Měli byste zvážit nasazení sdíleného clusteru, pokud:

Takže na základě posledního bodu ano. Funkce automatického shardingu je vytvořena pro škálování zápisů. V takovém případě máte zámek proti zápisu na útržek , nikoli podle databáze . Ale moje odpověď je teoretická. Doporučuji využít konzultaci od skupiny 10gen.com.



  1. Mám dotaz mongodb a chci najít přesnou shodu slova „Schváleno“

  2. NodeJS + MongoDB:Získávání dat z kolekce pomocí findOne ()

  3. Co je tcp-backlog v redis.conf

  4. db.collection.count() vrací mnohem více dokumentů pro sdílenou kolekci v MongoDB