Några allmänna punkter om MongoDB
Fördelar:
- schemalöst. Om du har ett flexibelt schema är detta idealiskt för en dokumentbutik som MongoDB. Detta är svårt att implementera på ett effektivt sätt i RDBMS
- lätt att skala ut. Skala avläsningar med hjälp av replikuppsättningar. Skala skriver genom att använda sharding (autobalansering). Det är bara att starta en annan maskin så är du iväg. Lägga till fler maskiner =lägga till mer RAM-minne för att distribuera din arbetsuppsättning.
- kostnad. Beror såklart på vilket RDBMS, men MongoDB är gratis och kan köras på Linux, perfekt för att köra på billigare råvarupaket.
- du kan välja vilken nivå av konsistens du vill ha beroende på värdet på data (t.ex. snabbare prestanda =avfyra och glöm inlägg till MongoDB, långsammare prestanda =vänta tills infogning har replikerats till flera noder innan du returnerar)
Nackdelar:
- Datastorleken i MongoDB är vanligtvis högre på grund av t.ex. varje dokument har lagrade fältnamn
- mindre flexibilitet med frågor (t.ex. inga JOINs)
- inget stöd för transaktioner - vissa atomära operationer stöds, på en enda dokumentnivå
- för närvarande är Map/Reduce (t.ex. för att göra aggregering/dataanalys) OK, men inte blixtrande snabbt. Så om det krävs kan något som Hadoop behöva läggas till i mixen
- mindre aktuell information tillgänglig/produkten som utvecklas snabbt
Jag bloggade nyligen mina tankar på MongoDB som någon som kommer från SQL Server-bakgrund, så du kanske är intresserad av det (ovan är bara några av huvudpunkterna).
Om du letar efter ett "Är MongoDB bättre än RDBMS"-svar - då IMHO finns det inget svar. NoSQL-teknologier som MongoDB tillhandahåller ett alternativ som kompletterar RDBMS-teknologier. Det ena kan vara bättre lämpat för ett visst syfte än det andra, så det handlar om att ringa om vad som är bäst för dig för ett givet krav.