Firma Oracle utworzyła nową gałąź bazy danych MySQL 9.0. Wersje MySQL Community Server 9.0.0 są dostępne dla wszystkich głównych dystrybucji Linux, FreeBSD, macOS i Windows. W ramach wprowadzonego w zeszłym roku modelu tworzenia wydań, MySQL 9.0 jest przypisany do gałęzi „Innovation”, do której będą również zaliczone następne istotne wydania MySQL 9.1 i 9.2. Gałęzie Innovation są rekomendowane dla tych, którzy chcą wcześniej uzyskać dostęp do nowych funkcji, publikowane są co 3 miesiące i są wspierane tylko do opublikowania następnego znaczącego wydania (np. po wydaniu gałęzi 9.1 wsparcie gałęzi 9.0 zostanie zakończone). Około roku planowane jest utworzenie wydania LTS, które będzie rekomendowane dla wdrożeń wymagających przewidywalności i długotrwałej stabilności. Następnie po gałęzi LTS zostanie utworzona nowa gałąź Innovation — MySQL 10.0.
Główne zmiany w MySQL 9.0:
- W przypadku wykonywania konstrukcji „EXPLAIN ANALYZE INTO” dodano możliwość zapisywania wyników w formacie JSON do zmiennej użytkownika, która może być następnie używana jako argument w funkcjach operujących na JSON.
EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt
- Zezwalają na zapisywanie wyrażeń „CREATE EVENT”, „ALTER EVENT” i „DROP EVENT” jako parametryzowane zapytania wewnątrz procedur składowanych. Tworzenie parametryzowanego zapytania odbywa się przy użyciu wyrażenia PREPARE, a jego wykonanie — przy użyciu wyrażenia 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;
KONIEC - Dodano dwie nowe tabele systemowe, zawierające informacje o zmiennych systemowych: variables_metadata — zawiera informacje o nazwach, zakresie, typach i przedziałach wartości wszystkich obsługiwanych przez serwer MySQL zmiennych systemowych; global_variable_attributes — zawiera wartości atrybutów określonych dla zmiennych globalnych, takich jak offline_mode i read_only.
- Usunięto wcześniej uznany za przestarzały wtyczkę serwerową mysql_native_password, która umożliwiała uwierzytelnianie za pomocą haseł. Zamiast mysql_native_password zaleca się korzystanie z wtyczki caching_sha2_password, która do haszowania używa algorytmu SHA2 zamiast SHA1.
- Dodano 15 zmiennych do konfiguracji i inspekcji silnika MLE (Multilingual Engine Component), który umożliwia używanie w procedurach składowanych i funkcjach kodu w językach innych niż SQL.
Źródło: opennet.ru
