MySQL vs MongoDB

C’è stato un tempo in cui i database relazionali erano l’unica scelta possibile. MySQL, Oracle, MS SQL venivano utilizzati come base per tutte le applicazioni di livello entreprise. Con il tempo, però, è nata l’esigenza di supportare applicazioni che necessitavano maggiore flessibilità ed una scalabilità diversa. Ecco nascere i database non relazionali come, ad esempio, MongoDB. Vediamo insieme quali sono le differenze tra queste due tipologie di DB e quando è opportuno optare per una soluzione piuttosto che per un’altra.

 

 

 

Cos’è MySQL?

MySQL è un Relational Database Management System (RDBMS) open source gratuito che utilizza Structured Query Language (SQL) di proprietà della Oracle Corporation. I dati sono salvati in tabelle raggruppate in database; Dati accessibili tramite comandi SQL tipo SELECT, UPDATE, INSERT e DELETE. Informazioni correlate possono essere salvate in tabelle diverse per poi essere aggregate con il comando JOIN.

MySQL è compatibile con quasi tutti i sistemi operativi come Windows, Unix, Linux, Apple, FreesBSD e molti altri.

 

 

Cos’è MongoDB

Mongo DB è un Relational Database Management System open source non relazionale orientato ai documenti. Classificato come database di tipo NoSQL. I documenti sono creati e salvati in file BSON (Binary JSON) compatibile con tutti i dati di tipo JS. Peculiarità che lo rende la scelta preferita per i progetti Node.js.  Altra caratteristica è legata al trasferimento dati tra server e applicazioni web che avviene in un formato human readable.  Opzione preferita quando è richiesta un’ampia capacità di storage, velocità, efficienza e affidabilità.

 

 

MySQL vs MongoDB

 

MySQL

MongoDB

Scritto in

C++, C

C++, C e JavaScript

Tipo

RDBMS

Orientato ai documenti

Peculiarità

  • Tabelle
  • Righe
  • Colonne
  • Collezioni
  • Documenti
  • Campi

Scalabilità

Verticale

Orizzontale

Utilizzo preferito

  • I dati necessitano di essere organizzati in tabelle
  • Transazioni multi riga
  • Aggiornamenti continui e modifica di grossi volumi di dati
  • Dataset piccoli
  • Schemi poco stabili
  • Database di grosse dimensioni
  • HA (High Availability)

 

 

 

 

MySQL vs MongoDB: Pro e Contro

Esistono diverse scuole di pensiero su quale sia il DB migliore. Di seguito pro e contro dei due sistemi:

 

MySQL

Pro

  • Supporto transazioni Atomic
  • Supporto JOIN
  • Soluzione consolidata
  • Sistema gestione privilegi

Contro

  • Scalabilità difficile
  • Problemi legati alla sua stabilità

 

MongoDB

Pro

  • Validazione documenti
  • Storage engine integrato
  • Tempi di recupero brevi dopo eventuali failure

Contro

  • Scelta sconsigliata nei casi in cui il numero di transazioni è elevato
  • Soluzione recente e ancora non matura

You may also like