La società Oracle ha creato un nuovo ramo del database MySQL 9.0.0. Le build di MySQL Community Server 9.0.0 sono state preparate per tutte le principali distribuzioni di Linux, FreeBSD, macOS e Windows. Nell'ambito del modello di rilascio introdotto lo scorso anno, MySQL 9.0 è stato classificato come parte dei rami «Innovation», a cui si aggiungeranno anche i prossimi significativi rilasci MySQL 9.1 e 9.2. I rami Innovation sono raccomandati per chi desidera avere accesso anticipato a nuove funzionalità, vengono pubblicati ogni 3 mesi e sono supportati solo fino alla pubblicazione del successivo rilascio significativo (ad esempio, dopo l'uscita del ramo 9.1, il supporto per il ramo 9.0 verrà interrotto). Circa un anno dopo, è previsto un rilascio LTS, raccomandato per le implementazioni che richiedono prevedibilità e un comportamento invariato a lungo termine. Seguirà un nuovo ramo Innovation — MySQL 10.0.
Principali novità in MySQL 9.0:
- Nell'esecuzione della costruzione «EXPLAIN ANALYZE INTO» è stata aggiunta la possibilità di salvare l'output nel formato JSON in una variabile utente, che può poi essere utilizzata come argomento nelle funzioni per la gestione di JSON.
EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt
- È consentito formattare le espressioni «CREATE EVENT», «ALTER EVENT» e «DROP EVENT» come query parametrizzate all'interno di procedure memorizzate. La creazione di una query parametrizzata avviene utilizzando l'espressione PREPARE e l'esecuzione — l'espressione EXECUTE.
CREATE PROCEDURE sp(n INT)
BEGIN
SET @s1 = «CREATE EVENT e ON SCHEDULE EVERY «;
SET @s2 = » SECOND
STARTS CURRENT_TIMESTAMP + INTERVAL 10 SECOND
ENDS CURRENT_TIMESTAMP + INTERVAL 2 MINUTE
ON COMPLETION PRESERVE
DO
INSERT INTO d.t VALUES ROW(NULL, NOW(), FLOOR(RAND()*100))»;SET @s = CONCAT(@s1, n, @s2);
PREPARE ps FROM @s;
EXECUTE ps;
DEALLOCATE PREPARE ps;
END - Sono state aggiunte due nuove tabelle di sistema contenenti informazioni sulle variabili di sistema: variables_metadata — contiene informazioni sui nomi, ambiti, tipi e intervalli di valori di tutte le variabili di sistema supportate dal server MySQL; global_variable_attributes — contiene i valori degli attributi impostati per le variabili globali, come offline_mode e read_only.
- Il plugin della server mysql_native_password, che forniva l'autenticazione tramite password, è stato rimosso e dichiarato obsoleto. Si consiglia di passare all'uso del plugin caching_sha2_password, che utilizza per l'hashing l'algoritmo SHA2 invece di SHA1.
- Aggiunte 15 variabili per configurare e ispezionare il motore MLE (Multilingual Engine Component), che consente di utilizzare codice in linguaggi diversi da SQL nelle procedure e funzioni memorizzate.
Fonte: opennet.ru
