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à |
|
|
Scalabilità |
Verticale |
Orizzontale |
Utilizzo preferito |
|
|
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