Alcuni punti generali su MongoDB
Pro:
- senza schema. Se hai uno schema flessibile, questo è l'ideale per un archivio di documenti come MongoDB. Questo è difficile da implementare in modo efficiente in RDBMS
- facilità di scalabilità orizzontale. Ridimensionare le letture usando i set di repliche. Ridimensiona le scritture usando il partizionamento orizzontale (bilanciamento automatico). Accendi un'altra macchina e te ne vai. Aggiungere più macchine =aggiungere più RAM su cui distribuire il tuo working set.
- costo. Dipende da quale RDBMS ovviamente, ma MongoDB è gratuito e può essere eseguito su Linux, l'ideale per l'esecuzione su kit di prodotti più economici.
- puoi scegliere il livello di coerenza che desideri in base al valore dei dati (ad es. prestazioni più veloci =attiva e dimentica gli inserimenti su MongoDB, prestazioni più lente =attendi che l'inserimento sia stato replicato su più nodi prima di tornare)
Contro:
- La dimensione dei dati in MongoDB è in genere maggiore a causa ad es. ogni documento ha nomi di campo memorizzati
- meno flessibilità con le query (ad es. nessun JOIN)
- nessun supporto per le transazioni:sono supportate determinate operazioni atomiche, a livello di singolo documento
- al momento Mappa/Riduci (ad es. per eseguire aggregazioni/analisi dei dati) va bene, ma non è velocissimo. Quindi, se necessario, potrebbe essere necessario aggiungere qualcosa come Hadoop al mix
- Disponibilità di informazioni meno aggiornate/prodotto in rapida evoluzione
Recentemente ho bloggato i miei pensieri su MongoDB come qualcuno proveniente da un background di SQL Server, quindi potresti essere interessato a questo (sopra sono solo alcuni dei punti principali).
Se stai cercando una risposta "MongoDB è meglio di RDBMS", allora IMHO non c'è risposta. Le tecnologie NoSQL come MongoDB forniscono un'alternativa che integra le tecnologie RDBMS. Uno potrebbe essere più adatto a uno scopo particolare rispetto all'altro, quindi si tratta di fare una chiamata su ciò che è meglio per te per una determinata esigenza.