MongoDB vs MySQL: confronto tra Database
Quella del Database è una delle scelte più importanti quando si è in procinto di avviare un nuovo progetto online (app/web app da sviluppare). Per fare una scelta corretta, senza fare errori che potrebbero poi creare delle difficoltà di gestione, bisogna conoscere le caratteristiche base sulle diverse tipologie di Database disponibili online. Quest’oggi vogliamo analizzare le differenze che vi sono tra due differenti tipi di Database: MongoDB vs MySQL.
Table of Contents
MongoDB vs MySQL, guida alla scelta
Come detto in apertura, la scelta del Database è importante per poter poi gestire in maniera “giusta” il proprio lavoro online.
Iniziamo dunque con l’analisi delle caratteristiche principali (e le differenze) di MongoDB e MySQL. Si tratta di due software open source che però si differenziano sia come comandi che come utilizzo, così anche per il fatto che il loro utilizzo è consigliato a seconda del tipo di servizio che va gestito.
MongoDB è un DBMS (Database Management System) non relazionale, mentre MySQL è un RDBMS (Relational Database Management System) composto (come MongoDB) da un client a riga di comando e un server.
Prima di proseguire con l’analisi delle differenze tra MongoDB e MySQL, partiamo dal “principio”.
Che cos’è un Database
Quello che viene chiamato Database (che in italiano possiamo tradurre come base di dati) rappresenta una collezione di dati che servono per essere usati, di volta in volta, da chi ne ha bisogno. Questa banca dati è fondamentale per fare in modo che dati, file e informazioni possano essere utilizzate da chi ne faccia richiesta. Vista l’enorme mole di file e dati che ormai “corrono sul web”, l’utilizzo di un sistema capace di contenere e organizzare questo materiale è indispensabile.
I dati inclusi in questa “banca virtuale” vengono poi organizzati e interrogati a seconda del tipo di Database su cui si è deciso di optare. Ecco perché analizzare la differenza tra MongoDB e MySQL è così importante.
MongoDB, le caratteristiche
MongoDB è un DBMS orientato ai documenti, rappresentati tramite JSON (supportato nativamente da JavaScript). Coloro che si trovano a dover gestire un Database, può utilizzare MongoDB per gestire una base di dati ampia e svolgere una serie di operazioni in modo automatico, basando il tutto su uno schema flessibile (cosa che lo contraddistingue da MySQL).
Possiamo dire che, a differenza di MySQL, MongoDB non utilizza tabelle e viene utilizzato per grandi flussi non strutturati di dati gestiti senza relazione.
Il concetto più interessante in merito a MongoDB è quello di scalabilità. Abbiamo sottolineato come vi siano della differenza tra scalabilità orizzontale e verticale, cosa che ci aiuta a dire come MongoDB consenta di scalare in orizzontale (senza downtime) con l’aggiunta di più nodi per evitare che eventuali disservizi di un server portino a problematiche concrete sulla fruibilità del servizio.
In merito ai servizi di di Keliweb, va sottolineato come MongoDB sia una tipologia di Database che può essere utilizzato non sui server condivisi ma solo su servizi come Server Dedicati e VPS.
MySQL, le caratteristiche
Per parlare di MySQL possiamo partire da una considerazione di base: si tratta della tipologia di Database open source più utilizzata al mondo. Dopo aver fissato questo punto di partenza, possiamo proseguire dicendo che MySQL è un sistema di gestione di Database relazionali.
I dati contenuti nel Database vengono immagazzinati dentro delle specifiche tabelle, mentre per accedere alla stessa “base di dati” viene utilizzato il linguaggio di query SQL. A differenza di MongoDB (e qui emerge la principale differenza tra i due Database), con MySQL si può scalare in verticale ma ciò comporta interventi (a volte importanti anche in termini economici) sulle risorse hardware della medesima macchina.
MySQL è un Database che fa parte del “mondo Keliweb”, in particolar modo per quel che riguarda i servizi targati Linux (a proposito di Linux, ti consigliamo di dare un’occhiata all’articolo su come scegliere il miglior server web tra Apache e Nginx).
A differenza di MongoDB, che come detto in precedenza può essere installato solo su soluzioni dedicate, MySQL viene utilizzato anche nei piani hosting web economici.
Approfondimento: ecco come funziona un Database MySQL.
Termini e comandi
Trattandosi di due differenti tipologie di software per gestire Database, MongoDB e MySQL funzionano sostanzialmente in modo simile. Quello che cambia sono i comandi utilizzati, il linguaggio delle query, così come la terminologia stessa che viene messa in campo.
Facciamo alcuni esempi concreti.
Vediamo per esempio la differenza nei termini utilizzati per identificare, sostanzialmente, la stessa cosa.
MySQL – MongoDB
table ——> collection
row ——> document
column ——> field
Analizziamo ora alcune differenze tra linguaggio di query. Nell’esempio riportato, vediamo l’inserimento dei dati in una tabella.
MySQL
INSERT INTO utenti (user_id, age, status) VALUES ('1', 34, 'active')
MongoDB
db.utenti.insert({ user_id: '1', age: 34, status: 'active' })
Vediamo un altro esempio per aggiornare i dati utenti di una tabella.
MySQL
UPDATE utenti SET status = 'inactive' WHERE age > 34
MongoDB
db.utenti.update( { age: { $gt: 34 } }, { $set: { status: 'inactive' } }, { multi: true } )
Per concludere
Questo articolo ha messo in risalto la “sfida” MongoDB vs MySQL per approfondire entrambe le soluzioni. Tocca ora a te scegliere su quale Database optare per gestire i tuoi dati.
Possiamo concludere dicendo che, mentre MySQL è una tecnologia con un passato “più ampio”, cosa che lo rende maggiormente affermato tra gli addetti ai lavori, MongoDB è una sorta di “nuova era dello sviluppo”, una tecnologia più giovane che permette di fare uno sviluppo più moderno anche in ottica di sviluppo di app mobile.