MariaDB
 sql >> Database >  >> RDS >> MariaDB

Novità di MariaDB 10.4

MariaDB 10.4 è un ramo di sviluppo corrente di MariaDB. Di recente, il 21 maggio, è stata rilasciata la terza Release Candidate (10.4.5), che ci avvicina al rilascio ufficiale. Ecco perché abbiamo pensato che potesse essere una buona idea dare un'occhiata alle nuove funzionalità 10.4. Condivideremo anche alcune riflessioni su un recente post sul blog pubblicato da MariaDB Corporation. Per informazioni sulla release stessa, puoi trovare tutti i dettagli nel changelog di MariaDB 10.4.0.

Modifiche alle prestazioni

I set di caratteri Unicode sono in genere più lenti dei set di caratteri come latin1, principalmente a causa delle loro dimensioni. MySQL 8.0 ha apportato miglioramenti significativi in ​​quest'area e anche MariaDB 10.4 dovrebbe essere notevolmente più veloce di 10.3 in questo senso. È un miglioramento piuttosto importante:le persone adorano usare gli emoji, che richiedono l'abilitazione di UTF8. È stato fatto del lavoro nell'ottimizzatore:MariaDB 10.4 dovrebbe funzionare meglio per le sottoquery IN() poiché ora è possibile inserire le condizioni nelle sottoquery materializzate.

L'avvio e l'arresto di InnoDB possono richiedere del tempo, a seconda della quantità di dati nei registri di ripristino. MariaDB 10.4 migliorerà l'avvio, lo spegnimento e l'eliminazione. Tali miglioramenti sono particolarmente importanti data la popolarità degli strumenti di backup a caldo come mariabackup e xtrabackup. Questi strumenti, alla fine, eseguono il processo di avvio di InnoDB da un arresto non pulito quando applicano i registri di ripristino, quindi ogni miglioramento in quell'area dovrebbe ridurre il tempo necessario per ripristinare i backup.

Modifiche a InnoDB

MariaDB 10.4 ha ricevuto un'operazione DROP COLUMN istantanea. Ora è anche possibile riordinare le colonne nella tabella senza doverla ricostruire. Non possiamo sottolineare quanto sia importante. Potresti chiederti quali sono le operazioni più comuni che svolgi nell'ambiente di produzione? Diciamo che sta aggiungendo o rimuovendo un indice. Un'altra operazione più comune sarebbero le operazioni sulle colonne:aggiungere una nuova colonna e rimuovere la colonna esistente. Finora l'approccio più comune era utilizzare strumenti esterni per svolgere il lavoro:pt-online-schema-change o, più recentemente, gh-ost. Entrambi hanno i loro limiti (gh-ost non funziona per Galera Cluster, per esempio) che potrebbero renderne impossibile l'uso sul tuo sistema. Particolarmente difficili sono le chiavi esterne. Con Instant DROP COLUMN (instant ADD COLUMN è già disponibile), gran parte delle modifiche allo schema possono essere eseguite ad hoc, senza pianificazione e pianificazione dettagliate, come deve essere fatto ora. È importante tenere a mente che i cambiamenti immediati sono ciò che vogliamo avere. Esistono modifiche allo schema non bloccanti, come la creazione di un indice, ma tali operazioni rappresentano una seria sfida quando viene utilizzata la replica poiché inducono un ritardo nella replica. Pertanto, anche se l'operazione avrebbe potuto essere eseguita su un sistema live, preferiamo utilizzare soluzioni alternative come pt-online-schema-change per mantenere un migliore controllo sul processo.

Questo non è l'unico miglioramento nel modo in cui vengono eseguite le modifiche allo schema. MariaDB 10.4 beneficerà di un'estensione più rapida delle colonne VARCHAR, inoltre le modifiche al set di caratteri e alle regole di confronto sulle colonne non indicizzate saranno istantanee.

Modifiche generali

Uno dei più grandi cambiamenti sono i cambiamenti nella gestione degli utenti. La tabella Mysql.host non verrà creata, la tabella mysql.user è obsoleta. Gli account utente e i privilegi globali verranno mantenuti nella tabella mysql.global_priv. Questo è potenzialmente un cambiamento serio per tutti gli strumenti (incluso ClusterControl), che hanno un'opzione per gestire gli utenti MySQL e MariaDB:sarà necessario scrivere nuovi casi per coprire la gestione degli utenti in MariaDB 10.4 e versioni successive. Anche se riconosciamo che sono necessarie modifiche, questo sicuramente non aiuta a mantenere gli strumenti sia per MariaDB che per MySQL, rendendo il panorama degli strumenti ancora più diviso di quanto non sia già. Parlando di utenti, MariaDB 10.4 include un'opzione per la scadenza della password utente. Questo è sicuramente un passo in una buona direzione:aiuta a far rispettare le buone pratiche relative alla gestione delle password.

Anche se lo tratteremo in un blog separato in modo più dettagliato, dobbiamo menzionare qui il supporto per Galera 26.4 - MariaDB 10.4 beneficerà di una nuova versione di Galera con funzionalità come la replica in streaming o SST migliorato grazie ai blocchi di backup.

Infine, in MariaDB 10.4 puoi impostare sql_mode=MSSQL. Questa è un'implementazione iniziale ma sql_mode=ORACLE è stata anche un'implementazione iniziale ad un certo punto. Ciò mostra l'attenzione di MariaDB sui clienti aziendali:se i clienti Oracle decidono di migrare, è molto probabile che anche l'adozione di MariaDB tra Microsoft SQL Server aumenterà man mano che verranno aggiunte più funzionalità e la migrazione diventerà meno problematica.

MariaDB è un fork

Di recente abbiamo visto un post sul blog che spiegava la posizione di MariaDB sulle modifiche e la compatibilità di InnoDB. Il succo è che MariaDB non unirà più le funzionalità di InnoDB da MySQL, l'attenzione sarà rivolta alla stabilità e al miglioramento delle prestazioni fatto da MariaDB. Ciò significa sostanzialmente che MariaDB diventerà incompatibile con MySQL. Anche se potessi eseguire l'aggiornamento binario in passato, ciò non sarà possibile in futuro. Anche in questo momento può essere difficile da eseguire. Ciò aumenta l'importanza di strumenti come mydumper/myloader poiché il backup logico sarà l'unico modo per la migrazione. Ciò che è positivo, MariaDB sarà in grado di possedere la stabilità del loro fork di InnoDB:non dovranno affrontare problemi introdotti dagli sviluppatori a monte, quindi possiamo aspettarci meno bug introdotti.

Per quanto riguarda le prestazioni, dobbiamo aspettare i benchmark, ma dati i dati storici, possiamo presumere che MariaDB sarà più lenta di MySQL. Nei benchmark passati, ciò che di solito vediamo è che l'aumento delle prestazioni per MariaDB si verifica quando è stata integrata la versione più recente di InnoDB. Questo non sarà più il caso, il che ci fa chiedere come se la caverà MariaDB nel confronto delle prestazioni d'ora in poi e se i miglioramenti introdotti da MariaDB saranno sufficienti per stare al passo con MySQL 8.0 e versioni successive.

Per noi utenti, tutto questo significa che MariaDB 10.4 dovrebbe essere più stabile rispetto alle versioni precedenti. Significa anche che alla fine dovremo imparare gli interni di due diversi motori di archiviazione, soprattutto se ci preoccupiamo delle prestazioni. Questo è tutt'altro che ideale, ma è così. Gli strumenti dovranno essere progettati per funzionare con l'una o l'altra versione di InnoDB (o sarà necessario aggiungere ulteriore lavoro per supportare sia MySQL che MariaDB). Terremo d'occhio come andrà avanti. Quando ci pensi, non è una mossa così sorprendente:MariaDB ha sempre dovuto prendersi il suo tempo per integrarsi con la versione più recente di InnoDB. Con l'aggiunta di funzionalità sempre più incompatibili a MariaDB e le enormi modifiche introdotte in MySQL 8.0, ha senso concentrarsi sullo sviluppo di nuove funzionalità piuttosto che sul porting di InnoDB incompatibili da MySQL a monte.

Ci auguriamo che questo breve post sul blog ti abbia fornito informazioni sulle modifiche che colpiranno i sistemi di produzione quando passerai a MariaDB 10.4.