Indice dei contenuti dell'articolo:
Negli ultimi anni, il mondo dei database relazionali ha assistito a numerosi sviluppi, con MariaDB e MySQL che continuano a competere per la supremazia in termini di performance. Con l’introduzione di MariaDB 11.4, la competizione ha raggiunto un nuovo livello. Recenti analisi ad Aprile 2024, (appena 2 mesi dalla scrittura di questo post)e benchmark condotti da Mark Callaghan, un rinomato esperto SQL e figura di spicco nel settore dei database, hanno evidenziato che MariaDB 11.4 offre prestazioni superiori rispetto a MySQL nelle configurazioni testate. Questo articolo esplorerà i dettagli di questi benchmark e analizzerà le ragioni dietro la superiorità di MariaDB.
Mark Callaghan è un nome ben noto nel mondo dei database relazionali e delle performance SQL. Con oltre due decenni di esperienza, Mark ha lavorato con alcune delle aziende più influenti del settore, tra cui Google, dove ha contribuito in modo significativo all’ottimizzazione di MySQL per i carichi di lavoro su larga scala. È conosciuto per la sua profonda conoscenza tecnica e la sua capacità di eseguire benchmark dettagliati e imparziali, che hanno aiutato molte organizzazioni a migliorare le loro infrastrutture di database.
Mark, un oracolo nel suo campo, gestisce il blog “Small Datum“, dove condivide regolarmente le sue analisi e i risultati dei benchmark che esegue su varie versioni di MariaDB e MySQL. I suoi articoli sono rinomati per la loro trasparenza e la precisione dei dati, diventando una risorsa fondamentale per sviluppatori e ingegneri di database in tutto il mondo. La sua esperienza e i suoi contributi alla comunità hanno reso le sue valutazioni particolarmente rispettate e affidabili.
Benchmark e Metodologia
Mark Callaghan ha condotto una serie di benchmark utilizzando Sysbench, un noto tool per il benchmarking dei database, su configurazioni di server di diverse dimensioni. Gli studi principali considerati per questo articolo includono:
Questi benchmark hanno confrontato le performance di MariaDB 11.4 con varie versioni di MySQL (5.6, 5.7 e 8.0), focalizzandosi su diverse tipologie di query e carichi di lavoro, tra cui query di punti, query di range e operazioni di scrittura.
Risultati dei Benchmark
Sysbench su un Piccolo Server
Il primo benchmark è stato condotto su un server di piccole dimensioni, dotato di una CPU i7, 16GB di RAM e un dispositivo di archiviazione M.2. Le tabelle di test sono state completamente memorizzate nella cache da InnoDB. I risultati hanno rivelato che MariaDB è stata in grado di evitare regressioni della CPU nel tempo, contrariamente a MySQL, che ha mostrato una tendenza alle regressioni con l’introduzione di nuove funzionalità.
In particolare, MariaDB 11.4 ha registrato un throughput (QPS) compreso tra il 113% e il 122% rispetto a MySQL 8.0.36 nei vari microbenchmark. Questo dato evidenzia che MariaDB non solo ha mantenuto le prestazioni, ma le ha anche migliorate significativamente rispetto alle versioni precedenti e rispetto a MySQL. Ad esempio, nel test delle query di punti, MariaDB ha superato MySQL con una media di 150,000 QPS contro i 130,000 QPS di MySQL.
Sysbench su un Server meno Piccolo
Un benchmark simile è stato eseguito su un server con configurazioni leggermente più potenti, comprendente una CPU più moderna e maggiore capacità di RAM. Anche in questo scenario, i risultati hanno confermato la superiorità di MariaDB. Il database ha mostrato una maggiore efficienza nell’uso della CPU, ottenendo throughput superiori in quasi tutti i test. Per esempio, durante le query di range, MariaDB ha registrato una media di 140,000 QPS, mentre MySQL si è fermato a 125,000 QPS.
Il Benchmark di Inserimento
Il benchmark di inserimento misura la velocità e l’efficienza delle operazioni di scrittura, critiche per le applicazioni che richiedono un alto tasso di inserimenti e aggiornamenti, come le piattaforme di e-commerce e i sistemi di gestione dei contenuti. In questo test, MariaDB ha nuovamente superato MySQL. MariaDB ha registrato un throughput di scrittura superiore del 15% rispetto a MySQL, con una media di 120,000 operazioni di inserimento al secondo contro le 105,000 di MySQL. Questo risultato è particolarmente significativo per le applicazioni ad alta intensità di dati, dove la velocità di inserimento può influenzare direttamente le prestazioni complessive del sistema.
Analisi delle Performance
Le ragioni dietro la superiorità di MariaDB possono essere attribuite a diversi fattori chiave:
Ottimizzazioni del Motore di Storage
MariaDB ha continuato a migliorare il suo motore di storage InnoDB, introducendo ottimizzazioni specifiche che riducono il sovraccarico della CPU e migliorano la gestione della memoria. Questo include miglioramenti nel buffer pool, che consente un accesso più veloce ai dati frequentemente utilizzati, e l’adozione di tecniche avanzate di compressione dei dati per ridurre l’utilizzo dello spazio di archiviazione e aumentare le prestazioni di lettura e scrittura.
Ad esempio, MariaDB ha integrato l’algoritmo di compressione zlib, che consente una riduzione significativa del consumo di spazio su disco e migliora il throughput delle operazioni di I/O. Inoltre, le ottimizzazioni nei meccanismi di lock-free e nella gestione delle transazioni hanno contribuito a ridurre la latenza e aumentare l’efficienza complessiva del sistema.
Miglioramenti della Concorrenza
Le nuove versioni di MariaDB includono miglioramenti significativi nella gestione della concorrenza, riducendo i colli di bottiglia e migliorando il throughput complessivo. Questo è stato ottenuto attraverso l’implementazione di schemi di lock più efficienti e l’ottimizzazione degli algoritmi di scheduling delle query.
In particolare, l’introduzione del parallel replication ha permesso di migliorare notevolmente le performance in ambienti multi-threaded, dove le operazioni di replica possono essere eseguite in parallelo, riducendo i tempi di latenza e aumentando il throughput delle operazioni di replica. Questi miglioramenti sono particolarmente utili in scenari di alta concorrenza, come i sistemi di e-commerce e le applicazioni web ad alto traffico.
Evita Regressioni
A differenza di MySQL, MariaDB ha dimostrato di essere più attenta nell’evitare regressioni di performance, assicurando che nuove funzionalità non compromettano le prestazioni esistenti. Questo è stato ottenuto attraverso un rigoroso processo di testing e benchmarking continuo, che permette di identificare e risolvere eventuali regressioni prima del rilascio delle nuove versioni.
Un esempio concreto di questo impegno è il processo di Continuous Integration (CI) adottato da MariaDB, che include una suite di test di performance eseguiti su ogni commit di codice. Questo approccio proattivo garantisce che ogni nuova funzionalità sia accuratamente testata e ottimizzata, minimizzando il rischio di regressioni e garantendo un miglioramento continuo delle performance.
Supporto e Collaborazione della Comunità
MariaDB beneficia di un forte supporto dalla comunità open source, che contribuisce con patch, ottimizzazioni e feedback continui. La comunità di MariaDB è composta da sviluppatori, utenti e aziende che collaborano attivamente per migliorare il software, risolvere bug e aggiungere nuove funzionalità.
Questa collaborazione aperta ha permesso di accelerare lo sviluppo e l’implementazione di nuove tecnologie, come il supporto per l’architettura ARM e le ottimizzazioni per i workload cloud-native. Inoltre, la comunità fornisce un feedback prezioso che aiuta a identificare e risolvere rapidamente i problemi di performance, assicurando che MariaDB rimanga all’avanguardia nel settore dei database relazionali.
Un caso reale di un nostro cliente migrato da Percona Server 5.7 a MariaDB 11.4
Un nostro cliente con traffico internazionale che viaggiava in ogni momento della giornata con un load average tra 8 e 10, dopo il passaggio da Percona Server 5.7 a MariaDB 11.4 ha visto il carico letteralmente dimezzarsi.
Conclusioni
Le analisi e i benchmark condotti da Mark Callaghan evidenziano chiaramente che MariaDB 11.4 è attualmente più veloce di MySQL nelle configurazioni testate. Questo rende MariaDB una scelta preferibile per molte applicazioni che richiedono alte prestazioni e affidabilità.
Per chi desidera approfondire i dettagli tecnici dei benchmark, si consiglia di consultare i post originali di Mark Callaghan su Small Datum.
MariaDB continua a evolversi, offrendo miglioramenti costanti e mantenendo un forte impegno verso l’ottimizzazione delle performance. Mentre MySQL rimane una scelta popolare, MariaDB 11.4 rappresenta un’opzione eccellente per chi cerca il massimo delle prestazioni nei database relazionali.