MariaDB 11.8: cosa cambia realmente

MariaDB 11.8 arriva con importanti miglioramenti di prestazioni, ottimizzazione e compatibilità, oltre a nuove funzionalità SQL e cambiamenti interni che è utile conoscere.
La nuova versione incorpora importanti miglioramenti di prestazioni, ottimizzazione, compatibilità e nuove funzionalità SQL. E anche se per la maggior parte dei siti web moderni non rappresenterà alcun problema, ci sono alcuni cambiamenti che è utile rivedere se lavori con sviluppi personalizzati o applicazioni vecchie.
Specialmente se il tuo progetto dipende molto da query SQL avanzate, collations specifiche, procedure memorizzate o logica ereditata.
La buona notizia è che, nella maggior parte dei casi, non dovrai toccare nulla.
La meno buona: se hai codice molto vecchio o molto ottimizzato «a mano», vale la pena fare alcune verifiche.
A chi può influire questo aggiornamento di MariaDB?
Se utilizzi un WordPress aggiornato insieme a plugin e temi abituali, puoi stare abbastanza tranquillo/a.
È normale che tutto continui a funzionare esattamente allo stesso modo dopo l’aggiornamento.
I casi in cui consigliamo di rivedere il comportamento sono:
- applicazioni vecchie o senza manutenzione
- sviluppi su misura
- integrazioni dirette con MariaDB
- query SQL complesse
- configurazioni vecchie di charset o collation
- trigger e procedure memorizzate
- sistemi con replicazione o integrazioni esterne
In altre parole: quanto più personalizzato è il progetto, tanto più è consigliabile validare alcuni punti.
Il cambiamento più importante: utf8mb4 diventa il charset predefinito ⚠️
Uno dei cambiamenti più rilevanti di MariaDB 11 è che il charset predefinito non sarà più latin1 ma diventerà utf8mb4.
E sì: questo importa più di quanto sembri.
Perché può influire?
Perché molte applicazioni vecchie non hanno mai definito esplicitamente il charset delle loro tabelle o colonne.
Semplicemente, assumevano il valore predefinito del server.
Con MariaDB 11 questo cambia.
Cosa può iniziare a comportarsi diversamente?
Principalmente:
- confronti di testo
- ricerche
- ordinamenti (
ORDER BY) - raggruppamenti (
GROUP BY) - uguaglianza tra stringhe
- trattamento di caratteri speciali o emoji
In alcuni progetti questo non avrà alcun impatto.
In altri, specialmente applicazioni vecchie o multilingua, può provocare differenze visibili.
Allora, cosa conviene rivedere?
Specialmente:
- tabelle create anni fa
- colonne senza charset esplicito
- applicazioni che mescolano diverse collations
- logica dipendente dall’ordine esatto dei risultati
Se vuoi mantenere un comportamento specifico, è consigliabile definire esplicitamente charset e collation in tabelle e colonne.
Cambia anche la collation Unicode predefinita
MariaDB 11.8 utilizza ora uca1400_ai_ci come collation Unicode predefinita.
Tradotto nel mondo reale: alcuni confronti e ordinamenti di testo possono comportarsi in modo leggermente diverso.
Dove si nota di solito?
Soprattutto in:
- applicazioni multilingua
- ricerche interne
- filtri testuali
- sistemi con ordinamenti complessi
- confronti tra caratteri Unicode
Ad esempio, stringhe che prima si consideravano «uguali» potrebbero non esserlo più, o viceversa.
Non è qualcosa di drammatico, ma è consigliabile rivedere se la tua applicazione dipende molto da ricerche o confronti testuali.
Le query possono cambiare comportamento (anche se funzionano meglio)
MariaDB 11 incorpora molti miglioramenti nell’ottimizzatore SQL.
E questo, in generale, è una buona notizia.
Molte query vengono eseguite in modo più efficiente grazie a nuovi criteri di ottimizzazione e indici più intelligenti.
Il problema è che, in alcuni casi, il piano di esecuzione può cambiare rispetto alle versioni precedenti.
Che tipo di query conviene rivedere?
Specialmente:
UPDATEeDELETEcon subquery- query con:
DATE()YEAR()SUBSTR()UCASE()
- tabelle partizionate
- colonne virtuali
- query molto ottimizzate manualmente
MariaDB ora può utilizzare indici in situazioni in cui prima non poteva.
Normalmente questo migliora le prestazioni.
Ma se la tua applicazione dipendeva da un comportamento molto specifico dell’ottimizzatore, conviene validarlo.
La raccomandazione più sensata
Rivedere query critiche utilizzando:
EXPLAIN
soprattutto se il progetto ha molta carica o logica SQL avanzata.
I trigger e le procedure memorizzate ora sono più rigidi
Un altro punto importante: MariaDB 11 inasprisce alcune validazioni interne relative a routine, trigger e funzioni memorizzate.
Cosa significa questo?
Che certe procedure vecchie, SQL dinamico o sintassi poco standard potrebbero iniziare a dare problemi al ricrearsi o validarsi.
Inoltre, i trigger UPDATE ora possono eseguirsi solo quando cambiano determinate colonne.
Questo apre nuove possibilità, ma può anche cambiare comportamenti in alcuni sistemi ereditati.
Dovresti preoccuparti?
Solo se utilizzi:
- procedure memorizzate complesse
- trigger personalizzati
- SQL dinamico
- logica vecchia mantenuta da anni
In applicazioni moderne o CMS abituali, questo raramente rappresenta un problema.
Alcune variabili vecchie scompaiono o diventano deprecate
Come accade in quasi ogni salto importante di versione, MariaDB 11 elimina parte della compatibilità ereditata.
Alcune variabili già eliminate
old_alter_tablewsrep_load_data_splitting- variabili vecchie di OQGraph
Variabili deprecate
tx_isolationspider_casual_read
Cosa dovresti rivedere
Soprattutto:
- script di automazione
- configurazioni personalizzate
- strumenti interni
- deploy vecchi
Molte volte il problema non è nell’applicazione web, ma in script dimenticati che continuano a utilizzare sintassi vecchia.
MariaDB 11 porta anche miglioramenti interessanti
Non tutto riguarda compatibilità e revisioni 😄
La nuova versione aggiunge anche funzionalità piuttosto potenti.
Nuove funzioni UUID
Ora puoi usare:
UUID_v4()
UUID_v7()
direttamente da MariaDB.
Miglioramenti in JSON
MariaDB continua a migliorare notevolmente il supporto JSON con funzioni come:
JSON_SCHEMA_VALID()JSON_ARRAY_INTERSECT()JSON_OBJECT_FILTER_KEYS()
molto utili in applicazioni moderne e API.
Funzioni vettoriali e ricerca semantica
Sì: MariaDB inizia anche a entrare nel mondo IA.
La nuova versione incorpora:
- tipi vettoriali
- indici vettoriali
- funzioni di similarità
orientate a ricerche semantiche e applicazioni moderne legate a embeddings o IA.
Allora… dovresti fare qualcosa?
Per la maggior parte dei progetti: probabilmente no.
Se utilizzi applicazioni moderne, CMS abituali o software aggiornato, è normale che la migrazione sia completamente trasparente.
Dove sì consigliamo di rivedere è in progetti:
- vecchi
- molto personalizzati
- con SQL avanzato
- con logica ereditata
- con integrazioni dirette contro MariaDB
In questi casi, vale la pena validare:
- collations
- query critiche
- trigger
- procedure memorizzate
- configurazioni vecchie
Se vuoi andare sul sicuro, una buona pratica è testare preventivamente l’applicazione in ambienti di staging prima dell’aggiornamento definitivo, specialmente in progetti critici o con molto sviluppo su misura.