Qual è la differenza tra MariaDB e MySQL?

MySQL e MariaDB sono due tecnologie di database open source. Puoi usarli per archiviare i dati in un formato tabellare con righe e colonne. MySQL è il database open source più adottato. Ed è il database relazionale principale per molti siti Web, applicazioni e prodotti commerciali popolari. MariaDB è una versione modificata di MySQL. MariaDB è stato creato dal team di sviluppo originale di MySQL a causa di problemi di licenza e distribuzione dopo l'acquisizione di MySQL da parte di Oracle Corporation. Dopo l'acquisizione, MySQL e MariaDB si sono evoluti in modo diverso. Tuttavia, MariaDB adotta i file di definizione di dati e tabelle di MySQL e utilizza anche protocolli client, API client, porte e socket identici. Questo ha lo scopo di consentire agli utenti di MySQL di passare a MariaDB senza problemi.

Ulteriori informazioni su MySQL »

Quali sono le analogie tra MariaDB e MySQL?

MySQL è un sistema di gestione di database relazionali rilasciato nel 1995. Nel 2009, gli sviluppatori hanno rilasciato MariaDB come fork di codice di MySQL 5.1.38.

Poiché MariaDB è un fork di MySQL, ci sono molte somiglianze nei due sistemi di gestione dei database relazionali. Ad esempio, MariaDB ha mantenuto la struttura, le convenzioni di denominazione e i file di definizione dei dati di MySQL. Inoltre, supporta tutti i connettori, le connessioni e le porte MySQL. Il tuo pacchetto client MySQL funziona invariato con MariaDB.

Successivamente sono fornite altre analogie.

Conformità ad ACID

Atomicità, consistenza, isolamento e durata (ACID) sono i quattro principi fondamentali che garantiscono l'affidabilità delle transazioni del database. Sia MySQL che MariaDB rispettano questi principi. Conformi ad ACID, entrambi i database garantiscono l'accuratezza e l'integrità dei dati.

Compatibilità SQL

MySQL e MariaDB sono database relazionali che organizzano i dati in tabelle. MariaDB e MySQL utilizzano entrambi SQL per gestire e interrogare i dati. Puoi usare molti degli stessi comandi su questi sistemi.

Ulteriori informazioni su SQL »

Sia MySQL che MariaDB archiviano i dati come tabelle relazionali con interfaccia SQL.

Software open source

In quanto sistemi di gestione di database relazionali open source, MySQL e MariaDB sono entrambi sforzi collaborativi nati da una community di sviluppatori. Il loro codice sorgente è disponibile al pubblico.

Il database MySQL ha una versione completamente open source, rilasciata sotto licenza General Public License (GPL). Ha anche una versione aziendale a pagamento che include funzionalità e supporto aggiuntivi. MariaDB è completamente open source su GitHub.

Sicurezza

MySQL e MariaDB offrono funzionalità di sicurezza di base simili. Offrono crittografia, meccanismi di controllo degli accessi, autenticazione e autorizzazione degli utenti e supporto SSL/TLS. Consentono inoltre un controllo degli accessi granulare in modo da poter concedere diversi livelli di autorizzazione a diversi utenti.

Principali differenze tra MariaDB e MySQL

Dopo il forking da MySQL, MariaDB ha continuato ad espandere le sue capacità. Alcune di queste modifiche hanno portato a differenze di base in termini di funzionalità, capacità e prestazioni.

Ecco le differenze significative tra MySQL e MariaDB.

Gestione dei dati JSON

MariaDB e MySQL supportano il recupero e l'archiviazione di dati JSON. Tuttavia, archiviano i report JSON in diversi modi. MariaDB archivia i report JSON in stringhe, mentre MySQL li archivia come oggetti binari.

Inoltre, sia MySQL che MariaDB non supportano tutte le funzioni JSON. MariaDB supporta JSON_QUERY e JSON_EXISTS, mentre MySQL no. Allo stesso modo, MySQL supporta il tipo di dati JSON nativo JSON_TABLE che MariaDB non supporta.

Tuttavia, MariaDB supporta solo i tipi di dati JSON dalla versione 10.2. Il tipo di dati JSON utilizzato da MariaDB è un alias per LONGTEXT.

Funzionalità

Poiché i loro percorsi di sviluppo sono stati diversi, MariaDB e MySQL offrono ora funzionalità leggermente diverse.

Ad esempio, MySQL fornisce colonne dinamiche che consentono di definire più valori di dati in una singola colonna e modificare la colonna con funzioni. Le colonne dinamiche consentono il mascheramento dei dati per proteggere le informazioni sensibili.

Al contrario, MariaDB supporta colonne invisibili nelle visualizzazioni del database. Le colonne invisibili non vengono elencate quando un utente esegue un'istruzione SELECT o richiede un valore in un'istruzione INSERT.

Autenticazione degli utenti

MySQL ha il componente validate_password, che puoi usare per aumentare la sicurezza delle password.

MariaDB non lo ha di default, ma offre tre plug-in di validazione. Puoi utilizzare questi plug-in per la convalida delle password per aggiungere maggiore protezione alle password. Nella versione 10.4, MariaDB ha introdotto il plug-in di autenticazione ed25519 per sostituire l'autenticazione SHA-1 precedentemente utilizzata. Questo aiuta ad autenticare gli utenti e ad archiviare le password in modo sicuro. 

Crittografia

MySQL e MariaDB crittografano i dati a riposo e in transito.

MySQL consente agli utenti amministratori di configurare e crittografare i log di ripristino e annullamento, mentre non crittografa i tablespace temporanei o i log binari.

D'altra parte, MariaDB supporta la crittografia dei log binari e la crittografia temporanea delle tabelle. 

Raggruppamento di thread

Il raggruppamento di thread consente a un database di ottimizzare le proprie risorse abbinando nuove connessioni a thread preesistenti. Un'elevata capacità del raggruppamento di thread è fondamentale per le applicazioni che desiderano scalare e servire migliaia di utenti in parallelo.

MariaDB include il raggruppamento di thread nel suo plug-in per il raggruppamento di thread, che fa parte dell'edizione community. MariaDB offre la possibilità di gestire oltre 200.000 connessioni contemporaneamente.

MySQL ha un plug-in per il raggruppamento di thread nella sua versione aziendale. Tuttavia, non può gestire tante connessioni contemporaneamente come MariaDB.

Quando usare MariaDB e MySQL

MariaDB è più scalabile e offre una maggiore velocità di interrogazione rispetto a MySQL. Questo lo rende ideale per la gestione di dati di grandi dimensioni. In MariaDB troverai anche altre funzionalità non disponibili in MySQL, come i motori di archiviazione delle sequenze e le colonne virtuali. Puoi anche utilizzare più motori in un'unica tabella.

Tuttavia, MySQL esiste da molto più tempo di MariaDB. Alcune organizzazioni preferiscono il supporto aziendale offerto da MySQL.

Più avanti sono riportate alcune considerazioni su come scegliere tra i due database.

Motori di archiviazione

Nei sistemi di gestione dei database, i motori di archiviazione sono un componente che aiuta a recuperare, aggiornare e archiviare i dati all'interno del database. Il motore di archiviazione con cui decidi di lavorare potrebbe influenzare la tua decisione.

Puoi utilizzare più motori di archiviazione sia su MySQL che su MariaDB, ma MySQL offre meno opzioni. Alcuni motori di archiviazione su MySQL includono InnoDB, CSV, Federated, MyISAM, Merge e Federated.

MariaDB supporta alcuni motori di archiviazione che MySQL non supporta, ad esempio XtraDB, Aria, InnoDB, MariaDB ColumnStore, Memory, Cassandra e Connect.

Licenza

MariaDB e MySQL hanno entrambe versioni della General Public License (GPL). MariaDB è interamente sotto l'autorizzazione GPL, mentre MySQL ha due licenze disponibili: pubblica e privata.

La licenza privata MySQL Enterprise Edition sblocca funzionalità aggiuntive, come il raggruppamento di thread, che aumentano la velocità delle query. Le aziende che vogliono distribuire il proprio software MySQL senza distribuire il codice sorgente sotto licenza GPL potrebbero preferire MySQL Enterprise Edition.

Compatibilità con i database Oracle

La compatibilità del database Oracle è la capacità del database Oracle di funzionare con un'applicazione creata con database MariaDB o MySQL.

Se la tua organizzazione utilizza già i prodotti di database Oracle, potresti preferire MySQL. Il database Oracle offre una modalità di compatibilità specifica per la sintassi SQL specifica di MySQL. Tuttavia, MySQL non supporta PL/SQL, il linguaggio orientato alle applicazioni sviluppato da Oracle.

Dalla versione 10.3, MariaDB supporta PL/SQL. MariaDB fornisce anche una modalità di compatibilità della sintassi Oracle per eseguire le applicazioni del database Oracle senza modifiche.

Velocità e prestazioni

Per molti anni, MySQL ha offerto prestazioni migliori di MariaDB in diversi casi d'uso. Ad esempio, MySQL 8.0 potrebbe gestire più query al secondo rispetto alla versione 10.3 di MariaDB. Tuttavia, MariaDB ha apportato molti miglioramenti negli ultimi anni.

Al momento, MariaDB è più veloce in termini di esecuzione di query e attività di replica. Potresti preferire MariaDB per carichi di lavoro critici per le prestazioni.

Puoi passare da MySQL a MariaDB?

Sì, puoi passare da MySQL a MariaDB con il minimo sforzo. MariaDB è progettato per essere compatibile con le versioni precedenti di MySQL. Ciò significa che le applicazioni e gli script scritti per MySQL dovrebbero funzionare con MariaDB senza modifiche significative. 

Fino a MariaDB 5.5, MariaDB Server seguiva lo schema di numerazione delle versioni di MySQL, mirando alla compatibilità drop-in con la stessa versione principale di MySQL. Nel 2012, per riflettere il crescente numero di funzionalità che non erano disponibili in MySQL, la numerazione delle versioni di MariaDB Server si è differenziata. MariaDB ha rilasciato la versione 10.0, mentre MySQL ha rilasciato la versione 5.6.

MariaDB Server mantiene ancora alti livelli di compatibilità con MySQL. Gli aggiornamenti dalle vecchie versioni di MySQL anche alle versioni più recenti di MariaDB sono supportati con un aggiornamento interno.

Il passaggio da MySQL a MariaDB segue una procedura di installazione standard. Esegui lo strumento mysql_upgrade per aggiornare i privilegi e le tabelle degli eventi del database MySQL con gli equivalenti di MariaDB.

Riepilogo delle differenze tra MySQL e MariaDB

 

MySQL

MariaDB

JSON

MySQL archivia i report JSON come oggetti binari.

MariaDB archivia i report JSON in stringhe. Il tipo di dati JSON di MariaDB è un alias per LONGTEXT.

Compatibilità con i database Oracle

MySQL ha un alto livello di compatibilità, ma non supporta PL/SQL.

MariaDB ha un alto livello di compatibilità e supporta PL/SQL dalla versione 10.3.

Velocità e prestazioni

MySQL è leggermente più lento di MariaDB nella replica e nell'esecuzione di query.

MariaDB è leggermente più veloce di MySQL nella replica e nell'esecuzione di query.

Funzionalità

MySQL supporta funzioni di sola lettura, colonne dinamiche e mascheramento dei dati.

MariaDB supporta colonne invisibili e spazio temporaneo nella tabella.

Autenticazione

MySQL ha il componente validate_password.

MariaDB ha tre plug-in per la convalida delle password.

Crittografia

I database MySQL utilizzano InnoDB e AES per crittografare i dati a riposo.

MariaDB supporta la crittografia temporanea dei log e la crittografia dei log binari.

Motori di archiviazione

MySQL ha un numero di motori di archiviazione inferiore rispetto a MariaDB.

MariaDB ha più motori di archiviazione di MySQL e può utilizzare più motori in un'unica tabella.

Licenza

MySQL ha due versioni: MySQL Enterprise Edition e una versione GPL.

MariaDB è completamente sotto licenza GPL.

Raggruppamento di thread

MySQL ha il raggruppamento di thread nella sua Enterprise Edition.

MariaDB può gestire oltre 200.000 connessioni alla volta, più di MySQL.

In che modo AWS può supportare i tuoi requisiti di MySQL e MariaDB?

Amazon Relational Database Service (Amazon RDS) è una raccolta di servizi completamente gestiti che rende semplice impostare, operare e scalare i database nel cloud.

Puoi scegliere tra sette motori popolari, due dei quali dedicati a MySQL e MariaDB. Amazon RDS per Maria DB supporta le versioni 10.3, 10.4, 10.5 e 10.6 di MariaDB Server. Amazon RDS per MySQL supporta le versioni di MySQL Community Edition 5.7 e 8.0. 

Log di CloudWatch

Ecco alcuni vantaggi che si possono ottenere utilizzando Amazon RDS:

  • Implementazione di database cloud MariaDB scalabili in pochi minuti impiegando hardware poco costoso e ridimensionabile.
  • Uso di codice, applicazioni e strumenti esistenti senza alcuna modifica
  • Accesso a oltre 50 parametri di CPU, memoria, file system e I/O del disco per il monitoraggio avanzato del database
  • Possibilità di una maggiore disponibilità e durata per una scalabilità orizzontale elastica oltre i limiti di capacità di una singola istanza di database

Inizia a usare MySQL e MariaDB su AWS creando un account oggi stesso.

Fasi successive con AWS