MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Pro e contro di MongoDB?

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.