L'azienda Oracle ha creato un nuovo ramo del DBMS MySQL 9.0. Le build di MySQL Community Server 9.0 sono disponibili per tutte le principali distribuzioni di Linux, FreeBSD, macOS e Windows. Nell'ambito del modello di rilascio implementato lo scorso anno, MySQL 9.0 è stato categorizzato nei rami "Innovation", che includeranno anche i prossimi rilasci significativi MySQL 9.1 e 9.2. I rami Innovation sono raccomandati per coloro che desiderano accedere prima alle nuove funzionalità, vengono pubblicati ogni 3 mesi e sono supportati solo fino al rilascio successivo significativo (ad esempio, il supporto per il ramo 9.0 cesserà dopo la creazione del ramo 9.1). Circa un anno dopo, è previsto il rilascio di una versione LTS, raccomandata per le implementazioni che necessitano di prevedibilità e di un comportamento invariato nel tempo. Seguirà una nuova ramo Innovation — MySQL 10.0.
Principali modifiche in MySQL 9.0:
- È stata aggiunta la possibilità di salvare l'output in formato JSON in una variabile utente durante l'esecuzione della costruzione "EXPLAIN ANALYZE INTO", che può poi essere utilizzata come argomento nelle funzioni per lavorare con JSON.
EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt
- È consentito l'uso delle espressioni «CREATE EVENT», «ALTER EVENT» e «DROP EVENT» come query parametriche all'interno delle procedure memorizzate. La creazione di una query parametrica avviene utilizzando l'espressione PREPARE, mentre l'esecuzione viene effettuata tramite 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;
FINE - Sono state aggiunte due nuove tabelle di sistema che contengono informazioni sulle variabili di sistema: variables_metadata — contiene informazioni sui nomi, scopi, 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.
- È stato rimosso il plugin server mysql_native_password precedentemente dichiarato obsoleto, che forniva autenticazione tramite password. Si raccomanda di passare all'uso del plugin caching_sha2_password, che utilizza l'algoritmo SHA2 invece di SHA1 per l'hashing.
- Aggiunti 15 variabili per la configurazione e l'ispezione del motore MLE (Multilingual Engine Component), che consente di utilizzare codice in lingue diverse da SQL nelle procedure memorizzate e nelle funzioni.
Fonte: opennet.ru
