Některé obecné body k MongoDB
Výhody:
- bez schématu. Pokud máte flexibilní schéma, je to ideální pro úložiště dokumentů, jako je MongoDB. To je obtížné implementovat výkonným způsobem v RDBMS
- snadné škálování. Měřítko čtení pomocí sad replik. Scale zapisuje pomocí shardingu (automatické vyvažování). Stačí zapálit další stroj a můžete jít. Přidání dalších počítačů =přidání více paměti RAM, přes kterou budete distribuovat svou pracovní sadu.
- náklady. Samozřejmě záleží na tom, které RDBMS, ale MongoDB je zdarma a může běžet na Linuxu, což je ideální pro běh na levnější sadě komodit.
- můžete si vybrat, jakou úroveň konzistence chcete v závislosti na hodnotě dat (např. rychlejší výkon =spusťte a zapomeňte vložky do MongoDB, pomalejší výkon =počkejte, dokud nebude vložka replikována do více uzlů, než se vrátí)
Nevýhody:
- Velikost dat v MongoDB je obvykle vyšší, např. každý dokument má uložená jména polí
- menší flexibilita při zadávání dotazů (např. žádné JOINy)
- žádná podpora transakcí – jsou podporovány určité atomické operace na úrovni jednoho dokumentu
- v tuto chvíli je Map/Reduce (např. pro provádění agregací/analýzy dat) v pořádku, ale není nijak závratně rychlá. Takže pokud je to požadováno, může být potřeba přidat do mixu něco jako Hadoop
- dostupné méně aktuální informace/rychle se vyvíjející produkt
Nedávno jsem napsal své myšlenky na MongoDB jako někdo z prostředí SQL Serveru, takže by vás to mohlo zajímat (výše jsou jen některé z hlavních bodů).
Pokud hledáte odpověď "Je MongoDB lepší než RDBMS" - pak IMHO neexistuje žádná odpověď. Technologie NoSQL jako MongoDB poskytují alternativu, která doplňuje technologie RDBMS. Jeden může být pro konkrétní účel vhodnější než druhý, takže jde o to, abyste si zavolali, co je pro vás pro daný požadavek nejlepší.