Enkele algemene punten over MongoDB
Voordelen:
- schemaloos. Als u een flexibel schema heeft, is dit ideaal voor een documentopslag zoals MongoDB. Dit is moeilijk op een performante manier te implementeren in RDBMS
- gemakkelijk uitschalen. Schaal leest met behulp van replica sets. Schaal schrijven met behulp van sharding (automatische balancering). Start gewoon een andere machine en u bent vertrokken. Meer machines toevoegen =meer RAM toevoegen waarover u uw werkset kunt verdelen.
- kosten. Hangt natuurlijk af van welk RDBMS, maar MongoDB is gratis en kan op Linux draaien, ideaal om op een goedkopere basiskit te draaien.
- u kunt kiezen welk niveau van consistentie u wilt, afhankelijk van de waarde van de gegevens (bijv. snellere prestaties =vuur en inserts vergeten naar MongoDB, tragere prestaties =wacht tot insert is gerepliceerd naar meerdere knooppunten voordat u terugkeert)
Nadelen:
- De gegevensgrootte in MongoDB is doorgaans groter vanwege b.v. elk document heeft veldnamen opgeslagen
- minder flexibiliteit bij het bevragen (bijv. geen JOIN's)
- geen ondersteuning voor transacties - bepaalde atomaire bewerkingen worden ondersteund, op een enkel documentniveau
- op dit moment is Map/Reduce (bijvoorbeeld om aggregaties/data-analyse te doen) OK, maar niet razendsnel. Dus als dat nodig is, moet er misschien iets als Hadoop aan de mix worden toegevoegd
- minder actuele informatie beschikbaar/snel evoluerend product
Ik heb onlangs mijn gedachten geblogd op MongoDB als iemand met een SQL Server-achtergrond, dus misschien ben je daarin geïnteresseerd (hierboven zijn slechts enkele van de belangrijkste punten).
Als u op zoek bent naar een antwoord "Is MongoDB beter dan RDBMS" - dan is er IMHO geen antwoord. NoSQL-technologieën zoals MongoDB bieden een alternatief dat de RDBMS-technologieën aanvult. De ene is misschien beter geschikt voor een bepaald doel dan de andere, dus het gaat erom dat u een beroep doet op wat het beste voor u is voor een bepaalde vereiste.