Nogle generelle punkter om MongoDB
Fordele:
- skemafri. Hvis du har et fleksibelt skema, er dette ideelt til en dokumentbutik som MongoDB. Dette er svært at implementere på en effektiv måde i RDBMS
- let at skalere ud. Skalalæsninger ved hjælp af replikasæt. Skala skriver ved at bruge sharding (auto balancering). Bare tænd en anden maskine, og så er du afsted. Tilføjelse af flere maskiner =tilføjelse af mere RAM, som dit arbejdssæt skal fordeles over.
- omkostninger. Afhænger selvfølgelig af hvilket RDBMS, men MongoDB er gratis og kan køre på Linux, ideel til at køre på billigere varesæt.
- du kan vælge hvilket niveau af konsistens du ønsker afhængigt af værdien af dataene (f.eks. hurtigere ydeevne =affyr og glem indsættelser til MongoDB, langsommere ydeevne =vent til indsættelsen er blevet replikeret til flere noder, før du vender tilbage)
Ulemper:
- Datastørrelsen i MongoDB er typisk højere pga. f.eks. hvert dokument har gemt feltnavne
- mindre fleksibilitet med forespørgsler (f.eks. ingen JOINs)
- ingen understøttelse af transaktioner - visse atomoperationer understøttes på et enkelt dokumentniveau
- i øjeblikket er Kort/Reducer (f.eks. for at lave aggregeringer/dataanalyse) OK, men ikke voldsomt hurtigt. Så hvis det er påkrævet, skal noget som Hadoop muligvis tilføjes til blandingen
- mindre opdateret information tilgængelig/hurtigt udviklende produkt
Jeg har for nylig blogget mine tanker på MongoDB som en person, der kommer fra SQL Server-baggrund, så du kan være interesseret i det (ovenfor er blot nogle af hovedpunkterne).
Hvis du leder efter et "Er MongoDB bedre end RDBMS" svar - så er IMHO der ikke noget svar. NoSQL-teknologier som MongoDB giver et alternativ, der komplementerer RDBMS-teknologier. Det ene passer måske bedre til et bestemt formål end det andet, så det handler om at lave et opkald på, hvad der er bedst for dig til et givent krav.