MariaDB vs MySQL
MySQL o MariaDB: quale sistema di gestione di database è più all’avanguardia? Il progetto open source MySQL si porta dietro una storia ultraventennale. MariaDB, fork dello strumento classico per database relazionali, è stato introdotto solo nel 2009. Sebbene inizialmente, l’obiettivo principale di MariaDB fosse lo sviluppo di un sostituto drop-in con standard elevati per la community open source, ora i due progetti stanno perseguendo obiettivi di sviluppo molto diversi.
Sviluppo di MySQL e MariaDB
Dietro a MySQL e MariaDB si nasconde lo sviluppatore di software finlandese Michael “Monty” Widenius. Insieme agli svedesi David Axmark e Alan Larsson, Widenius fondò la società per azioni MySQL AB, che nel 1995 (a solo un anno dall’inizio del suo sviluppo) pubblicò la prima versione del sistema di gestione di database open source (DBMS) MySQL, dando così avvio a una storia di successo mondiale che ha raggiunto il suo culmine nel 2008 con la vendita del progetto a Sun Microsystems per un importo pari a un miliardo di dollari US.
Nel 2009 Widenius lasciò il progetto del software insieme ad altri sviluppatori di MySQL e si concentrò sullo sviluppo del fork, MariaDB. Il motivo della rottura fu l’imminente acquisizione di Sun da parte del gigante incontestato del software nella community open source, Oracle, nel 2010. Il team di sviluppatori temeva che Oracle entrasse in conflitto di interessi se l’impresa avesse sviluppato il software open source MySQL e, al contempo, un proprio software per database.
Widenius ritiene che MariaDB debba
- unire sotto uno stesso tetto i talenti di MySQL,
- promuovere lo sviluppo continuo della community e
- garantire che esista sempre una versione di MySQL gratuita.
Per questo, nel 2012, Widenius fondò la MariaDB Foundation. Fu la Monty Program AB, fondata nel 2009, a sviluppare inizialmente il fork di MySQL. Nel 2014 questa si fuse con la SkySQL, dando luogo alla MariaDB Corporation.
Nella denominazione dei progetti open source da lui ideati, Michael “Monty” Widenius fa sempre riferimento ai propri figli. Il “My” in MySQL si rifà al nome della sua figlia maggiore. Il fork MySQL prende il nome dalla figlia più giovane Maria, mentre il nome di suo figlio Max si ritrova in MaxDB e MaxScaler
Quando il progetto di community MariaDB Server della MariaDB Foundation venne sviluppato, la MariaDB Corporation si occupava dei settori commerciali della società. Con questa suddivisione, la società intende prendere le distanze dalla Oracle Corporation, in cui i due settori sono gestiti dalla medesima amministrazione: una decisione accolta positivamente dalla community open source.
MariaDB si focalizza sullo sviluppo aperto. Si evidenziano due principi di base:
- il codice sorgente delle parti del programma in fase di sviluppo è disponibile tramite archivi pubblici.
- Tutte le fasi di sviluppo sono documentate pubblicamente.
Il sistema di licenza duale di Oracle, invece, è criticato dalla community open source. Questo si basa sulle crescenti differenze tra la versione open source della community e i prodotti MySQL propri. In passato era criticata anche la gestione poco trasparente degli errori del software.
Sviluppo cronologico di MySQL e MariaDB
1995 | Prima versione internazionale del SBMS open source MySQL da parte della MySQL AB |
2008 | Vendita di MySQL a Sun Microsystems |
2009 | Rilascio del fork di MySQL, Maria DB, da parte della Monty Program AB |
2010 | Acquisizione di Sun Microsystems da parte di Oracle |
2012 | Fondazione della MariaDB Foundation |
2014 | Fusione della Monty Program AB con SkySQL e cambio denominazione in MariaDB Corporation. |
Crea una casa sicura per i tuoi progetti web con l'Hosting SQL Server di IONOS.
Confronto tra MySQL e MariaDB
I sistemi di gestione di databse MySQL e MariaDB si basano sul medesimo nucleo di software. MariaDB è un fork di MySQL 5.1 ma, nel corso del tempo, si è distinto come sistema di gestione di database indipendente. Mettiamo a confronto le differenze delle versioni GA (General Availability) attuali, MySQL 8.0.11 e Maria 10.2.8, e focalizziamoci sui seguenti punti:
- struttura del database
- motori di database
- query di database
- performance
- disponibilità elevata
- sicurezza
- ecosistema
- assistenza
- documentazione e community
Struttura del database
Lo sviluppo di MariaDB si basa sulla volontà di garantire la piena compatibilità della struttura del database e di API e file di configurazione di MySQL per consentire agli utenti un drop-in replacement. Il passaggio da MySQL a MariaDB o viceversa deve essere il più agevole possibile, come un aggiornamento tra due diverse versioni di MySQL. Il team di sviluppatori di Maria DB è riuscito a raggiungere questo obiettivo fino alla versione 7 di MySQL inclusa.
Innanzitutto, entrambi i sistemi si fondano sulla medesima struttura di database. Entrambi si rifanno al modello di database relazionale. La definizione di dati e tabelle è compatibile e vengono impiegati protocolli, strutture e interfacce di programmazione identici. Tutti i connettori MySQL sono impiegabili senza modifiche anche con MariaDB per collegare applicazioni e strumenti mediante interfacce di database standard, come ODBC o JDBC. Anche per le attività di amministrazione e di backup MariaDB si serve di comprovati programmi a riga di comando come mysqldump o mysqladmin.
Una volta al mese per ridurre al minimo i problemi di compatibilità il team di sviluppatori di MariaDB mette a confronto il codice sorgente del fork con quello MySQL. La compatibilità binaria dei due sistemi di gestione di database termina però con MySQL 8. A partire dalla versione 8.0 MySQL non è più compatibile né con le versioni più vecchie di MySQL né con MariaDB.
Un esempio del fatto che lo sviluppo dei due progetti open source va in direzioni diverse è dato dal nuovo dizionario di dati transazionale di MySQL 8. Questo è parte di una strategia di lavorazione dei meta dati che si differenziano sostanzialmente dai concetti finora esistenti. Dato che attualmente MariaDB non sviluppa funzionalità comparabili bisogna presupporre che in futuro non sarà presente alcuna compatibilità al livello di file di dati.
MariaDB si è consolidato come sostituto totale di MySQL compatibile su base binaria. A partire dalla versione 8.0 di MySQL, tuttavia, questa compatibilità non è più possibile.
Motori del database
In futuro MariaDB punta a differenziarsi da MySQL, soprattutto in termini di flessibilità. Oltre ai motori standard supportati da MySQL, è sempre disponibile un numero crescente di motori di database alternativi per casi applicativi speciali.
Un motore di database è un sottosistema di salvataggio che consente al sistema di gestione del database la creazione, la lettura, l’aggiornamento e la cancellazione di dati nelle tabelle del database, vedi CRUD.
La seguente tabella mostra i motori di database disponibili per MySQL 8.0.11 e MariaDB 10.3 (come riportato nella documentazione).
Motore del database | MySQL 8.0.11 | MariaDB 10.3.8 | Descrizione |
InnoDB/ XtraDB | InnoDB è il sottosistema di salvataggio standard per MySQL (a partire dalla versione 5.5). Fino alla versione 10.1 MariaDB ha utilizzato il fork InnoDB ampliato XtraDB come motore di database standard. Dalla versione 10.2 anche MariaDB impiega InnoDB come sottosistema di salvataggio. InnoDB consente accessi di lettura e scrittura sicuri nelle transazioni. | ||
MyISAM | MyISAM, il sottosistema di salvataggio standard delle vecchie versioni MySQL, consente accessi rapidi alle tabelle di database e indici. Tuttavia MyISAM non garantisce la stessa sicurezza di InnoDB nelle transazioni. | ||
MEMORY | MEMORY è un sottosistema di salvataggio per dati temporanei: mentre la definizione della tabella si trova sul disco rigido, i dati vengono memorizzati nella memoria principale. MEMORY è ideale per database in memory con tempi di accesso rapidi e latenza minima. | ||
CSV | Il motore CSV salva i dati nel formato CSV in forma di campi di dati separati da virgole. | ||
Archivio | Il motore del database è progettato per un salvataggio a lungo termine di grandi quantità di dati e offre vari algoritmi di compressione che consentono un’archiviazione salvaspazio. | ||
BLACKHOLE | BLACKHOLE consente la verifica di dichiarazioni SQL. Invece di salvare i dati, BLACKHOLE registra solo la sintassi SQL. | ||
Merge | Il motore di database Merge permette la fusione di più tabelle MyISAM con la medesima struttura in un’unica tabella. | ||
Federated/ FederatedX | Il sottosistema di salvataggio Federated permette a MySQL di accedere alle tabelle presenti su un altro server in modalità remota. MariaDB utilizza il fork FederatedX. | ||
ColumnStore | ColumnStore è una porta di InfiniDB, che consente la lavorazione per colonne di grandi quantità di dati nell’area Petabyte. | ||
Aria | Aria viene sviluppata dal 2007 come alternativa a prova di crash di MyISAM. | ||
Cassandra | Con Cassandra gli utenti di MariaDB dispongono di un motore di database per la gestione di dati molto strutturati. Il software segue un approccio non relazionale (NoSQL) ed è progettato per garantire alta disponibilità e affidabilità (senza Single Point of Failure). | ||
CONNECT | Il motore di archiviazione CONNECT consente l’accesso a diverse fonti di dati esterne, come DBase, CSV, DOS, FMT e XML, in modalità locale o remota. | ||
Mroonga | Mroonga è un motore di database basato su colonne, il quale offre una ricerca di testo completo per varie lingue, incluso cinese, giapponese e coreano. | ||
MyRocks | Il motore di database MyRocks è stato ottimizzato per un salvataggio di dati rapido e a bassa latenza e offre una compressione decisamente migliore del sottosistema di salvataggio standard InnoDB. | ||
OQGRAPH | Con l’Open Query GRAPH Computation Engine (abbreviato OQGRAPH) è possibile elaborare i dati in strutture gerarchiche di database (strutture ad albero) e in forma di grafici complessi. | ||
Sequence | Il Sequence Storage Engine permette agli utenti di generare sequenze di dati crescenti e decrescenti di numeri interi positivi, incluso valore iniziale, valore finale e incremento. | ||
SphinxSE | Lo Sphinx Storage Engine (SphinxSE) è un’alternativa alla ricerca di testo completo integrata di MariaDB. La ricerca di testo viene messa a disposizione da Sphinx-Daemon searchd. | ||
Spider | Spider è un motore di database con funzione di sharding (partizionamento) integrata. Spider supporta il partizionamento del database ed eXtended Architecture (XA). Ciò consente di affrontare diverse risorse con una stessa transazione. Le tabelle di varie istanze di database sono utilizzabili come se si trattasse di tabelle della medesima istanza. | ||
TokuDB | Il motore di database TokuDB è stato sviluppato per elaborare grandi quantità di dati e si rivolge in particolare alle applicazioni di Big Data. |
Query di database
Nell’applicazione non ci sono distinzioni tra MySQL e MariaDB. I due DBMS puntano a una compatibilità totale con la lingua del database SQL. Gli utenti sfruttano statement SQL identici per creare, aggiornare, richiamare o cancellare voci di database.
Il nostro tutorial MySQL per esordienti offre un’introduzione agli statement SQL di base.
Performance
La prestazione di un sistema di database nell’uso aziendale ha per lo più un influsso diretto sui processi aziendali. Tanti utenti interessati a uno dei progetti open source portati in vita da Widenius si pongono in particolare una domanda: MariaDB offre una performance migliore rispetto a MySQL? Lo sottolineano i test di benchmark come DBT-3. Tra le altre cose, il fattore decisivo è il motore di database utilizzato. I test di benchmark per configurazioni con diversi motori di database mettono a disposizione entrambe le comunità di sviluppatori sui rispettivi siti web del progetto.
Tuttavia, la significatività dei corrispondenti test di laboratorio per l’uso pratico è limitata, poiché le prestazioni di un database dipendono fortemente dalla misura in cui l’implementazione del software è stata adattata ai rispettivi requisiti. Pertanto, gli utenti dovrebbero concentrarsi sulle possibilità offerte dal sistema di gestione del database in oggetto per adattare il software alla rispettiva applicazione.
MariaDB non primeggia solo grazie all’ampia scelta di motori di database alternativi ma anche per l’efficiente ottimizzatore per le richieste SQL. A partire dalla versione 10.0.1 nell’ottimizzazione delle richieste MariaDB non punta più alle statistiche interne del rispettivo motore di database ma a statistiche di tabelle indipendenti dal motore, che vengono salvate come tabelle tradizionali nel database e consentono la registrazione di più valori per individuare un piano ideale per l’esecuzione di dichiarazioni SQL.
Gli interessati possono trovare varie istruzioni per l’ottimizzazione della performance del database nella documentazione di MariaDB. Questi articoli offrono suggerimenti di hardware e informazioni sulle configurazioni del sistema operativo, sulle strategie di ottimizzazione delle strutture di database, sull’ottimizzazione dell’indice e delle tabelle, sulle strategie di performance di richieste e sottorichieste, suggerimenti e trucchi per le variabili di sistema, buffer, cache e thread. Contengono inoltre consigli per il miglioramento della performance interna al database e per avvisi su cifratura, hashing e compressione.
Anche MySQL offre ampio materiale informativo sulla messa a punto del database. Tuttavia, questo è in gran parte accessibile solo agli utenti che si registrano con un conto web Oracle.
Disponibilità elevata
Sia MySQL sia MariaDB si adattano a scenari con database distribuiti. Per poter offrire agli utenti sistemi altamente disponibili con scalabilità lineare i due progetti software mettono a disposizione soluzioni cluster:
- MySQL Cluster
- MariaDB Galera Cluster
MySQL Cluster è un database transazionale in tempo reale conforme ad ACID, il quale raggiunge una disponibilità del 99,9999% grazie a un’architettura multimaster senza Single Point of Failure. Il database può essere scalato orizzontalmente a hardware standard e offre una funzione di auto sharing per un carico di lavoro a lettura e scrittura intensiva. L’accesso ai dati avviene mediante le interfacce SQL o NoSQL, secondo le esigenze. MySQL Cluster viene offerto come versione a parte. L’attuale versione è la 7.5. Come MySQL, anche la soluzione cluster viene gestita con un sistema di licenza duale. La versione di community è offerta dietro alla GNU General Public License.
Nei database distribuiti MariaDB punta sul software cluster Galera dell’azienda di software finlandese Codership. La relativa interfaccia è integrata come standard a partire da MariaDB 10.1. Non occorre scaricare una versione cluster separata. Anche Galera Cluster di Maria DB ha alla base un’architettura multimaster. Come motore di database nel funzionamento cluster è disponibile solo InnoDB (o XtraDB). Al fine di differenziare la propria soluzione cluster dal prodotto MySQL il team di sviluppatori di MariaDB offre un’estensione speciale per il sistema di gestione del database con MaxScale, che garantisce agli utenti varie funzioni aggiuntive per il routing nei sistemi distribuiti.
MaxScale è un proxy di database che gestisce principalmente il bilanciamento del carico, ma può essere configurato dai plug-in non solo per inoltrare l’accesso al database ma anche per modificarlo secondo le necessità. Il proxy anonimizza o dà pseudonimi ai dati sensibili, blocca le richieste in base a regole preconfigurate, protegge dal Denial of Service (DoS), avvia automaticamente le strategie di failover e aumenta le prestazioni del database attraverso caching e divisione read-write (deviazione degli accessi di lettura e scrittura a diverse istanze di database).
A differenza del server MariaDB, tuttavia, la versione 2 e quelle successive di MaxScale non sono più sotto licenza GPL. Al suo posto, MariaDB Corporation ha sviluppato la Business Source License (BSL), un modello di licenza progettato per combinare i requisiti della community open source alle esigenze economiche per lo sviluppo del software.
Secondo gli sviluppatori Business Source License (BSL) è un’alternativa a closed source e open core: il codice sorgente sotto BSL è disponibile gratuitamente agli utenti in qualsiasi momento, ma l’uso del software è limitato per un certo periodo di tempo. Ad esempio, MaxScale può essere utilizzato gratuitamente per scenari con un massimo di tre istanze di database. Gli utenti che necessitano di più istanze di database devono acquistare una relativa licenza. Se l’intervallo di tempo definito dal fornitore è scaduto, la licenza Business Source verrà automaticamente convertita in una licenza open source GPL equivalente. Ogni versione di MaxScale è disponibile per gli utenti dopo al massimo 3 anni sotto licenza GPL senza restrizioni.
Sicurezza
Le principali funzionalità di sicurezza di un sistema di gestione del database includono cifratura, autenticazione e ruoli utente.
Sia MySQL che MariaDB offrono funzioni di cifratura per dati inattivi (Data at rest). MySQL esegue la cifratura dei dati memorizzati nel database a livello di tablespace, utilizzando il motore di database InnoDB. Non è possibile una cifratura di singole tabelle di database.
Le tablespace sono unità di memoria di motori di database relazionali come InnoDB che contengono tutti i dati del sistema di database. Ogni tablespace contiene almeno un file di dati, un file fisico del sistema operativo di base in cui sono salvati sia le tabelle del database sia gli indici.
MariaDB, invece, offre funzioni di cifratura chiaramente differenziate a partire dalla versione 10.1. Queste includono una cifratura dei data at rest sui seguenti livelli di database:
- tablespace InnoDB
- tabelle InnoDB
- file di log InnoDB
- tabelle Aria
- file temporanei
- dati di log binari
Con le Rolling Encryption Keys MariaDB offre anche una funzione che consente di impostare una data di scadenza per la chiave di cifratura.
Entrambi i sistemi di gestione dei database supportano il servizio di gestione chiavi Key Management Service (KMS) di Amazon Web Services (AWS) tramite plug-in.
Per l’autenticazione utente anche MySQL e MariaDB si affidano a un sistema di plugin. Con sha256_password e caching_sha2_password, il team di sviluppatori di MySQL mette a disposizione degli utenti due plug-in di autenticazione. L’ultimo, oltre all’autenticazione standard via Secure Hash Algorithm, offre un caching sul lato server che favorisce una riautenticazione più rapida.
Anche MariaDB ha utilizzato il Secure Hash Algorithm con SHA-1 fino alla versione 10.1.21. Dalla versione 10.1.22 viene usato il plugin ed25519. ed25519 è uno schema di firma EdDSA che SHA-2 combina a curve25519.
Le tecnologie di cifratura impiegate da MariaDB provengono anche da Google e dalla società di software tedesca Eperi.
Entrambi i sistemi di gestione del database supportano connessioni con cifratura SSL.
Il punto di forza di MariaDB nel settore della sicurezza del database è il controllo degli accessi basato sui ruoli (Role Based Access Control, RBAC), che dalla versione 10.0.5 è nativo in DMBS e facilita la gestione dei diritti d’accesso riducendo gli errori nell’assegnazione manuale dei diritti. Attualmente una funzionalità simile manca in MySQL.
Ecosistema
Con il doppio sistema di licenze Oracle sta perseguendo una strategia open core con MySQL. Mentre il programma principale MySQL è disponibile gratuitamente come edizione per la community con codice sorgente pubblico, vari miglioramenti al sistema di gestione database sono offerti solo in combinazione con una delle edizioni commerciali. Tuttavia, grazie al forte networking con la community open source, il team di sviluppatori di MariaDB è in grado di implementare interfacce con alternative open source per la maggior parte dei prodotti propri di MySQL in MariaDB.
Funzione | MySQL | MariaDB Server |
---|---|---|
Monitoraggio | MySQL Enterprise Monitor (proprietario) | Webyog Monyog (proprietario) |
Backup | MySQL Enterprise Backup (proprietario) | MariaDB Backup (fork di Percona XtraBackup, GPL) |
SQL Management | MySQL Workbench (GPL/proprietario) | Webyog SQLyog (GPL/proprietario) |
Load Balancing & Routing | MySQL Router (GPL/proprietario) | MariaDB MaxScale (BSL) |
Firewall | MySQL Enterprise Firewall (proprietario) | MariaDB MaxScale (BSL) |
Assistenza
Il supporto professionale è disponibile solo per i clienti paganti sia in MySQL sia in MariaDB.
Gli utenti che acquistano una licenza per i prodotti propri di MySQL avranno accesso al supporto Oracle Premier. Ciò include supporto illimitato 24 ore su 24 e 7 giorni su 7, accesso al database di conoscenze, rilasci di manutenzione, correzioni di bug, patch e aggiornamenti. Inoltre il supporto Oracle Premier fornisce una risoluzione dei problemi e la consulenza professionale per la messa a punto e l’installazione delle prestazioni. Gli utenti possono far controllare la propria replica personalizzata, partizionamenti, schemi, query, API, estensioni del server, funzioni e routine ai tecnici di supporto professionisti MySQL.
MariaDB Corporation vende servizi di assistenza dietro abbonamento a MariaDB. Essi includono un supporto 24 ore su 24 e 7 giorni su 7 con un tempo di risposta massimo di 30 minuti, un servizio di notifica e patch e correzioni di bug. Inoltre vengono offerte formazioni a pagamento, un’amministrazione remota del database, consulenza per prestazioni, alta disponibilità, sicurezza e test del software, nonché un servizio di migrazione. Secondo MariaDB Corporation, il team di assistenza dell’azienda fornisce supporto professionale sia a MariaDB sia a MySQL.
Dato che il team di sviluppatori di MySQL è passato quasi completamente a MariaDB, MariaDB Corporation è in grado di comprendere non solo MariaDB, ma anche il codice MySQL meglio del team di assistenza di Oracle.
Documentazione e community
MySQL è proprietà di Oracle Corporation, che pubblica una documentazione completa di tutti i progetti MySQL open source sul sito web ufficiale di MySQL. Inoltre, la comunità degli utenti dispone delle seguenti opzioni per informarsi su MySQL:
Responsabile della documentazione di MariaDB è MariaDB Foundation, che fa affidamento sulla comunità degli utenti.
Gli utenti che desiderano partecipare allo sviluppo e alla documentazione dei server MariaDB o delle applicazioni open source dell’ecosistema MariaDB troveranno informazioni sul sito web MariaDB Foundation.
MariaDB vs MySQL: principali caratteristiche in sintesi
MySQL è un collaudato sistema di gestione di database che seduce gli utenti in quanto software open source che può essere integrato con numerosi miglioramenti aziendali. Il team di sviluppatori di MariaDB attorno a Michael Widenius ha adottato il meglio del software di base MySQL e ha aggiunto molte funzionalità. La seguente tabella mette a confronto le caratteristiche centrali di entrambi i DBMS mostrando chi possa beneficiare della migrazione da MySQL a MariaDB.
Caratteristiche | MySQL | MariaDB |
---|---|---|
Anno di pubblicazione | 1995 | 2009 |
Versione attuale | MySQL 8.0.11 | MariaDB 10.3.8 |
Sviluppatori | Oracle | MariaDB Corporation Ab (MariaDB Enterprise)MariaDB Foundation (MariaDB Server) |
Licenza | Sistema di licenza duale (proprietario e GPL 2) | GPL 2 |
Sistemi operativi | Oracle LinuxRed HatCentOSOracle SolarisUbuntuDebian SUSE Enterprise LinuxMicrosoft WindowsMicrosoft Windows ServerApple macOSFreeBSDSolaris | Red Hat / CentOSUbuntuDebian Mint SUSE Enterprise Linux openSUSEMicrosoft Windows ServerMicrosoft WindowsManjaroFedoraArch Linux Apple macOS |
Linguaggi di programmazione | C e C++ | C, C++, Bash e Perl |
Modello di database primario | Modello di database relazionale | Modello di database relazionale |
Modello di database secondario | Modello di database orientato al documento Database key value | Modello di database orientato al documento Database key value Database orientato alla grafica |
Interfaccia SQL | Sì | Sì |
Interfacce NoSQL | Sì | Sì |
Protocollo | Protocollo MySQL | Protocollo MySQL |
Replica | Replica con GTID (Global Transaction Identifier)- Replica Master Master - Replica Master Slave | Replica con GTID (Global Transaction Identifier)- Replica Master Master - Replica Master Slave |
Supporto In-Memory | Sì | Sì |
Routing | MySQL Router (GPLv2) | MariaDB MaxScale (BSL) |
Partizionamento (sharding) | Partizionamento orizzontale, sharding con MySQL Cluster o MySQL Fabric | Partizionamento orizzontale, sharding mediante spider, CONNECT o Galera |
SQL Management | MySQL Workbench (Microsoft Windows, macOS e Linux) | SQLyog di Webyog (Microsoft Windows, Linux) |
Monitoraggio | MySQL Enterprise Monitor (proprio) | Monyog di Webyog (Microsoft Windows e Linux) (proprio) |
Cifratura | Cifratura di dati inattivi- Tablespace InnoDB | Cifratura di dati inattivi- Tablespace InnoDB - Tabelle InnoDB - File di log InnoDB- Tabelle Aria- File temporanei- Binlogs |
Controllo d’accesso basato sui ruoli | No | Sì |
Autenticazione | Autenticazione via SHA-256 | Autenticazione via ed25519-Plugin |
Mascheramento dei dati | Via ProxySQL | Via MariaDB MaxScale (BSL) |
Firewall | Via MySQL Enterprise Firewall (proprietario) | Via MariaDB MaxScale (BSL) |
Auditing | Via MySQL Enterprise Audit Plugin (proprietario) | Via MariaDB Audit Plugin |
Analisi | No | Via MariaDB ColumnStore |
Routing & Load-Balancing | Via MySQL Router | Via MariaDB MaxScale (BSL) |
Backup | Via MySQL Enterprise Backup (proprietario) | Via MariaDB Backup (fork di Percona XtraBackup) |
Common Table Expression (CTE) | Sì | Sì |
Funzione finestra | Sì | Sì |
Tabelle temporali con gestione versione | No | Sì |
Query Rewriting | Sì | No |
Tipi di dati | String (CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, BINARY, VARBINARY, JSON)Numerico (BIT, TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE, BOOLEAN)Data/ora (DATE, DATETIME, TIMESTAMP, TIME, YEAR)Large Object Datatypes (TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB) | String (CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, BINARY, VARBINARY, JSON)Numerico (BIT, TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE, BOOLEAN)Data/ora (DATE, DATETIME, TIMESTAMP, TIME, YEAR)Large Object Datatypes (TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB) |
Tipi di dati spaziali | GEOMETRYPOINTLINESTRINGPOLYGON MULTIPOINTMULTILINESTRINGMULTIPOLYGONGEOMETRYCOLLECTION | GEOMETRYPOINTLINESTRINGPOLYGONMULTIPOINTMULTILINESTRINGMULTIPOLYGONGEOMETRYCOLLECTION |
Motori del database | InnoDBMyISAMMEMORYCSVArchivioBLACKHOLE MergeFederated | InnoDB/XtraDBMyISAMMEMORYCSVArchivioBLACKHOLE MergeFederatedXColumnStoreAriaCassandra CONNECTMroongaMyRocksOQGRAPHSequence SphinxSESpiderTokuDB |
Connettori ufficiali | ODBCC++CADO.NETJDBCPHPPythonPerlRuby Node.js | ODBCC++CADO.NETJDBCPHPPythonPerlRubyExcelJavaScriptSwiftR |
In sintesi
Con MySQL Oracle offre un collaudato sistema di gestione di database che riscuote grande popolarità da oltre 20 anni. MySQL è stato anche in grado di affermarsi sotto il patrocinio di Oracle come un progetto software indipendente che continua a essere mantenuto, sviluppato e migliorato. Chi desidera sfruttare tutte le possibilità dell’ecosistema MySQL si scontra presto con i limiti della Community Edition gratuita. Oracle offre strumenti professionali per i settori di monitoraggio, backup, load balancing, routing e sicurezza del database, unicamente con licenza proprietaria.
MariaDB è nata da MySQL e oggi si presenta come soluzione di database per l’uso produttivo.
Il fatto che MariaDB si sia affermata come seria alternativa a MySQL è dimostrato anche dal fatto che, dalla fine del 2012, MariaDB ha sostituito MySQL come installazione standard su varie distribuzioni Linux, inclusi Fedora, CentOS, openSUSE, Arch Linux, Debian e Red Hat Enterprise Linux. Altre applicazioni importanti e servizi web che si basano su MariaDB sono Google, Mozilla, Wikimedia Foundation, TeamSpeak e XAMPP.
Dietro MariaDB si cela il team di sviluppatori di MySQL, che può attingere all’enorme supporto della community open source. Ciò consente alla MariaDB Foundation di fornire le alternative open source per numerosi miglioramenti aziendali dell’ecosistema MySQL, ma non tutti sono conformi allo standard open source come definito da Bruce Perens e da Eric S. Raymond.
In futuro lo sviluppo dei due progetti software divergerà sempre più. Mentre inizialmente MariaDB era considerato un sostituto open source di MySQL, lo sviluppo futuro si concentrerà su funzionalità e miglioramenti esclusivi, come MaxScale e ColumnStore. Questi aprono a nuove applicazioni, differenziando così MariaDB da MySQL. Il fattore decisivo per decidere tra “MySQL o MariaDB” non sarà più la reputazione del team di sviluppatori, ma la misura in cui lo spettro funzionale del rispettivo sistema di gestione del database coincide con lo scenario applicativo desiderato.