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

Motivi a favore e contro il passaggio da SQL Server a MongoDB

A mio parere, il formato dei tuoi dati dovrebbe essere la preoccupazione principale nella scelta di un back-end di archiviazione. Disponi di dati di natura relazionale? In tal caso, è possibile ed è una buona idea modellare i dati nei documenti? La modellazione dei dati è importante in un database di documenti quanto in un database relazionale, ma è stata eseguita in modo diverso. Quanti tipi di oggetti hai e come sono correlati? DBrefs in Mongodb può fare il trucco o ti mancheranno le chiavi esterne così tanto che sarà doloroso? Quali sono i tuoi modelli di accesso ai dati? Stai solo recuperando dati di un tipo filtrati da un valore di campo o hai modalità di recupero complesse?

Hai bisogno dell'integrità transazionale ACID? Il dominio impone molti vincoli ai dati? Hai bisogno del fattore di scalabilità di un database di documenti o è solo una cosa "cool" da avere?

Quali sono i tuoi requisiti di coerenza e integrità dei dati? Alcune soluzioni NoSQL e MongoDB in particolare sono piuttosto deboli nella coerenza della scrittura per ottenere prestazioni. NoSQL non è un panorama uniforme e altri prodotti, ad es. CouchDB ha altre caratteristiche in questo reparto. Alcuni sono anche sintonizzabili.

Queste sono tutte domande che dovrebbero entrare nella scelta dello storage.

Alcune esperienze

  • La creazione di report estesi sui dati archiviati può essere più difficile quando si utilizza MongoDB o qualsiasi database di documenti e alcuni casi d'uso hanno combinato RDBMS e document-db a tale scopo.
  • (Molto) Modello di query diverso. MongoDB differisce anche da altri document-dbs.
  • Flessibile per modificare il formato/schema dei dati durante lo sviluppo
  • Territorio sconosciuto
  • grado di maturità variabile nei driver e nei framework
  • Veloce
  • Strumenti di gestione e di prodotto (in molti modi) più semplici (rispetto a molti prodotti RDBMS)
  • Niente più discrepanza di impedenza. L'archiviazione si adatta ai dati, non il contrario.
  • Meno attrito e accesso più diretto ai dati.
  • Dominio più legato alla persistenza (dipende dal "livello" ORM di NoRM, da quanto astrae il backend. Non ho usato NoRM quindi non posso rispondere.)