Сборки MySQL Community Server 9.0.0 доступны для всех основных дистрибутивов Linux, FreeBSD, macOS и Windows.
Согласно новой модели релизов, внедренной в прошлом году, MySQL 9.0 относится к веткам "Innovation".
К этой категории также будут отнесены будущие значительные релизы MySQL 9.1 и 9.2.
Ветки "
Innovation" рекомендованы для пользователей, желающих получать доступ к новым функциям как можно раньше. Эти версии публикуются каждые 3 месяца и поддерживаются только до выхода следующего значительного релиза (например, поддержка ветки 9.0 прекратится с появлением ветки 9.1). Примерно через год планируется выпустить LTS-релиз, который будет рекомендован для внедрений, требующих стабильности и длительной поддержки. После LTS-релиза будет создана новая ветка "Innovation" — MySQL 10.0.
Главные изменения в MySQL 9.0:
При выполнении конструкции
"EXPLAIN ANALYZE INTO" добавлена возможность сохранения вывода в формате JSON в пользовательскую переменную, которая затем может использоваться в качестве аргумента в функциях для работы с JSON.sqlEXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt
Разрешено оформление выражений
"CREATE EVENT", "ALTER EVENT" и "DROP EVENT" в виде параметризованных запросов внутри хранимых процедур. Создание параметризованного запроса осуществляется с использованием выражения PREPARE, а выполнение - выражения 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Добавлены две новые системные таблицы, содержащие сведения о системных переменных:
variables_metadata - содержит информацию об именах, области действия, типах и диапазонах значений всех поддерживаемых MySQL-сервером системных переменных; global_variable_attributes - содержит значения атрибутов, выставленных для глобальных переменных, таких как offline_mode и read_only.Удалён ранее объявленный устаревшим серверный плагин
mysql_native_password, обеспечивающий аутентификацию при помощи паролей. Вместо
mysql_native_password рекомендуется перейти на использование плагина caching_sha2_password, применяющего для хэширования алгоритм SHA2 вместо SHA1.Добавлено 15 переменных для настройки и инспектирования движка MLE (Multilingual Engine Component), позволяющего использовать в хранимых процедурах и функциях код на языках, отличных от SQL.
@sqlhub