MySQL, MariaDB e Percona Server

MySQL, MariaDB e Percona Server:introduzione

I siti web dinamici fanno ampio uso dei database, i quali consentono di gestire al meglio e in modo semplice e immediato i contenuti, nonché di ottimizzare la user experience grazie a contenuti personalizzati. Per gestire efficientemente i DB è necessario ricorrere ai DBMS, acronimo di Database Management System.

Tra i DBMS più noti e utilizzati rientra MySQL, sistema opensource di gestione di database relazionali acquisito dalla Oracle nel 2010. A partire da questo, sono stati creati altri sistemi di gestione di database, tra i quali spiccano MariaDB e Percona Server.

Di seguito verranno presentate brevemente le caratteristiche di questi tre DBMS – o, più correttamente, RDBMS – e le differenze che li contraddistinguono.

Per poter utilizzare differenti versioni per i DB è presente l’istanza sul nostro sito.

MySQL, MariaDB e Percona Server

MySQL, MariaDB e Percona Server: che cosa sono

MySQL e i suoi più noti fork sono, come anticipato nell’introduzione, dei sistemi di gestione di database relazionali ossia RDBMS. Caratterizzati da una tecnologia più avanzata rispetto ai DBMS, questi sistemi consentono di archiviare i dati in tabelle formate da attributi (le righe verticali) e tuple (le righe orizzontali), nonché di creare relazioni tra tabelle.

Per elaborare, archiviare, gestire, modificare, cancellare, interrogare i dati dei database relazionali, gli RDBMS utilizzano il linguaggio SQL (Structured Query Language).

MySQL

Lanciato nel 1995 dall’omonima società svedese, MySQL è un progetto open source scritto in C e C++ ampiamente utilizzato per la gestione dei DB dei siti web dinamici, degli e-commerce e non solo. Basato sullo storage engine InnoDB, per le proprietà logiche di transizione utilizza ACID (acronimo di Atomicity, Consistency, Isolation, Durability).

Come anticipato, il modello di database primario è l’RDBMS, mentre per quanto riguarda il modello secondario ci sono il Document Store e lo Spatial DBMS. Attualmente giunto alla release 9.0, funziona con i sistemi operativi:

  • Linux
  • Windows
  • OS X
  • Solaris
  • FreeBSD.

Non solo cloud-based, supporta i linguaggi di programmazione C, C#, C++, Objective-C, Perl, Java, JavaScript, Ruby, Python, PHP, Scheme, Delphi e numerosi altri. Molto stabile, supporta, tra le varie funzioni, triggers, server-side script, partizionamento orizzontale, replicazione, dati predefiniti, XML, chiavi esterne, database In Memory, colonne dinamiche, crittografia dei dati, esclusi i log binari e le tabelle temporanee; per quanto riguarda i metodi di accesso e le API, può interfacciarsi con ODBC, JDBC, ADO.NET; in più, possiede API native. I dati JSON supportati vengono archiviati come oggetti binari.

Tra i vantaggi di utilizzo rientrano la grande versatilità, la semplicità del design, la velocità, l’elevata compatibilità con numerosi browser, gli aggiornamenti costanti, le numerose funzioni e la possibilità di personalizzazione. Di contro, risulta poco efficiente e meno scalabile, rispetto ad altri RDBMS, nella gestione di database di grandi dimensioni e non mette a disposizione molti strumenti per il debug.

MariaDB

Anch’esso open source, MariaDB è un fork di MySQL sviluppato, nel 2009, da Michael Widenius.

Caratterizzato da ottime prestazioni e sicuro, questo RDBMS, compatibile con le applicazioni proprie di MySQL, presenta numerose affinità con quest’ultima, ma anche alcune importanti differenze. Tra queste ultime è possibile citare:

    • i motori di archiviazione: rispetto a MySQL, MariaDB supporta molti più Storage Engine, come Aria (lo storage engine predefinito), XtraDB, Connect, Cassandra
    • il modello secondario: MariaDB incorpora, oltre al Document Store e allo Spatial DBMS, un Graph DBMS
  • i sistemi operativi che lo supportano: a differenza di MySQL, non è supportato da OS X
  • i linguaggi di programmazione: non supporta il linguaggio Delphi, ma aggiunge, a quelli di MySQL, Go
    • i tipo di colonne: MariaDB non supporta le colonne dinamiche, ma mette a disposizione colonne invisibili
  • la crittografia dei dati: questo RDBMS permette di crittografare anche i log binari e i tablespace temporanei.

Passando ai vantaggi, questo DBMS Relazionale risulta essere, anche grazie al pool di thread dinamico, molto più veloce, anche negli aggiornamenti, e offre repliche ottimizzate. Inoltre, la compatibilità con numerosi Storage Engine rende il sistema più scalabile, potente e personalizzabile. Di contro, supporta esclusivamente i dati JSON a partire dalla versione 10.2 e non include alcune delle funzioni invece disponibili con la versione Enterprise Edition di MySQL.

Percona Server

Anche Percona Server è nato come fork di MySQL. Il suo lancio è avvenuto un anno prima rispetto a quello di MariaDB e, precisamente, nel 2008. Anche questo RDBMS presenta numerose somiglianze con MySQL, nonché con MariaDB, ma le differenze non mancano. Ecco le principali:

    • storage engine: il motore di archiviazione predefinito è, in questo caso, XtraDB, ossia una sorta di versione migliorata e ottimizzata di InnoDB. Molto utilizzato anche TokuDB;
    • sistemi operativi: Percona Server risulta essere compatibile solo con Linux
    • linguaggi di programmazione: supporta meno linguaggi di programmazione rispetto agli altri due. In particolare, non sono supportati Delphi, Go e JavaScript
  • API e metodi di accesso: non presenta API native
  • crittografia dei dati: questo DBMS non dispone di funzioni di crittografia integrate, ma consente di aggiungerle tramite plugin.

Tra i pro garantiti da Percona rientrano gli elevati livelli di sicurezza e di stabilità, l’ottimizzazione delle prestazioni e l’alto livello di scalabilità, garantiti anche da funzionalità aggiuntive, la disponibilità di numerosi strumenti per la diagnostica e il monitoraggio, come Percona Monitoring and Management. Di contro, presenta una comunità di utenti meno attiva e un numero inferiore di risorse e documentazioni.