La nuova versione MySQL 9.7 [NdE Aprile 2026], e' il rilascio LTS (Long Term Support) che raccoglie le evoluzioni delle precedenti release Innovation 9.0, 9.1, ...
In questo documento sono riportati in dettaglio i principali nuovi elementi disponibili nella versione 9.7 riportando consigli ed esempi pratici:
Ma le novita' non sono solo queste... continuate a leggere!
Non e' piu' una novita' ma si prosegue con il rilascio di versioni LTS stabili e
con un lungo periodo di supporto
[NdA 5 anni di Premier Support dalla data di GA e quindi ulteriori 3 anni di Extended Support]
La versione 9.7 e' la nuova LTS: verra' supportata a lungo e le sue funzionalita'
non verranno rimosse.
E' previsto che la prossima LTS
sia la versione MySQL 10 preceduta da una serie di Innovation Releases.
Funzionalmente la versione 9.7 non introduce molte novita' rispetto alla precedente LTS 8.4 e quindi l'upgrade non e' urgente, a meno che non abbiate davvero bisogno del VECTOR datatype che presentiamo nel prossimo capitolo.
Con l'esplosione della Generative AI e dei Large Language Models (LLM), la necessita' di memorizzare e interrogare vector embeddings (rappresentazioni numeriche del significato di testi, immagini o audio) e' diventata cruciale.
MySQL 9.7 LTS introduce finalmente il tipo di dato nativo VECTOR e una serie di funzioni helper per calcolare la distanza tra vettori (la base per la ricerca semantica). Sebbene questa funzionalita' arrivi in ritardo rispetto ad altre soluzioni Open Source (come l'estensione pgvector di PostgreSQL), l'implementazione in MySQL 9.7 consente a chi ha gia' un'infrastruttura basata solo su MySQL di muovere i primi passi nell'AI senza dover introdurre tecnologie esterne.
Nell'esempio definiamo una tabella con dati vettoriali, inseriamo alcuni valori (che debbono essere stati opportunamente calcolati da un modello AI apposito) ed infine li interroghiamo:
Nell'esempio abbiamo utilizzato vettori a tre dimensioni per semplicita' anche se tipicamente le dimensioni sono centinaia e dipendono dal modello scelto, non si tratta di un limite di MySQL.
In questa prima LTS, la gestione dei vettori e' solida dal punto di vista sintattico ma mostra ancora qualche limite sul fronte delle performance. La prima implementazione privilegia la semplicita' di utilizzo. Le tecniche di indicizzazione vettoriale ad alte prestazioni sono ancora meno mature rispetto a quelle disponibili in sistemi specializzati o in estensioni come pgvector. Per piccoli dataset la ricerca lineare (scansione completa) si comporta correttamente.
Dopo un lungo sviluppo e l'introduzione nelle versioni Innovation, l'Hypergraph Optimizer diventa il comportamento predefinito nella nuova LTS.
Nelle query che coinvolgono numerose tabelle in JOIN, il vecchio ottimizzatore valutava le combinazioni in modo lineare, rischiando di non trovare l'ordine di esecuzione ideale o di impiegare troppo tempo a calcolarlo. Il modello a ipergrafo (hypergraph) mappa le relazioni tra le tabelle come nodi e archi complessi, permettendo all'ottimizzatore di:
Il vantaggio principale u' che si tratta di un'ottimizzazione totalmente trasparente. Non e' necessario modificare la sintassi SQL delle query: l'Hypergraph Optimizer analizza il codice esistente e genera piani di esecuzione (visibili tramite il classico comando EXPLAIN) intrinsecamente piu' efficienti, specialmente in contesti di data warehousing o reportistica complessa.
Da ultimo ma non come ultimo... la sicurezza.
Il cambiamento piu' impattante e' il desupporto del plugin
di autenticazione mysql_native_password (introdotto originariamente in MySQL 4.1).
Il meccanismo di default e' ora caching_sha2_password,
basato sull'algoritmo SHA-256 che e' decisamente piu' sicuro contro gli attacchi brute force.
Per assegnare una nuova password con il plugin corretto la sintassi e':
La 9.7 LTS elimina definitivamente numerose variabili di sistema e opzioni di configurazione ereditate dalle versioni precedenti e spesso marcate come deprecate. Inoltre, l'assegnazione dei privilegi e' diventata piu' stringente: non e' piu' possibile utilizzare scorciatoie sintattiche non conformi allo standard SQL ISO per la creazione implicita di utenti tramite i comandi di GRANT.
Altre novita' interessanti sono:
Altre funzionalita', deprecate da tempo, sono state rimosse completamente nella versione 9.7
e quindi non si possono piu' utilizzare!
Continua l'opera di rimozione della terminologia obsoleta legata alla replica:
i vecchi parametri e variabili che contenevano i termini master e slave sono stati eliminati definitivamente.
Da ultimo, ma non come importanza ed impatto, la rimozione completa del plugin mysql_native_password
La documentazione ufficiale riporta tutti i dettagli delle funzionalita' deprecate o rimosse nella 9.7 [NdA ma noi abbiamo cercato di fare meglio presentando le differenze rispetto alla 8.4 che e' la versione LTS precedente].
Un breve riassunto delle funzionalita' introdotte nel tempo si trova su
Introduzione a MySQL.
MySQL e' in costante evoluzione; ecco le funzionalita' introdotte nelle versioni precedenti:
MySQL 8.4,
MySQL 8.0,
MySQL 5.7,
MySQL 5.6,
MySQL 5.5,
MySQL 5.1,
MySQL 5.0.
Per i piu' curiosi sono anche utili il confronto con l'importante fork
MariaDB (10.2)
e compatibilita' tra versioni MySQL.
Un documento completo con le versioni dei principali software, tra cui MySQL,
e' Il tuo server puzza!
Titolo: MySQL 9.7 - Nuove funzionalita'
Livello: Avanzato
Data: 1 Aprile 2026
Versione: 1.0.1 -
14 Luglio 2026
Autore:
mail [AT] meo.bogliolo.name