Компания Oracle създаде нов клон на базата данни MySQL 9.0. Сборките на MySQL Community Server 9.0 са подготвени за всички основни дистрибуции на Linux, FreeBSD, macOS и Windows. В рамките на въведената миналата година модел на издаване на версии, MySQL 9.0 е класифициран в клоновете "Innovation", в които също ще бъдат включени следващите значителни издания MySQL 9.1 и 9.2. Клоновете Innovation са препоръчителни за тези, които искат по-ранен достъп до нови функционалности, публикуват се на всеки 3 месеца и се поддържат само до публикуването на следващото значително издание (например, след появата на клона 9.1 поддръжката на клона 9.0 ще бъде прекратена). Около година по-късно планират да създадат LTS издание, което ще бъде препоръчително за внедрения, които изискват предсказуемост и продължително запазване на непроменено поведение. Веднага след LTS клона ще бъде създаден нов клон Innovation — MySQL 10.0.
Основни промени в MySQL 9.0:
- Добавена е възможността за запазване на изхода в JSON формат в потребителска променлива при изпълнение на конструкцията „EXPLAIN ANALYZE INTO“, която след това може да се използва като аргумент в функции за работа с JSON.
EXPLAIN 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, в хранилища на процедури и функции.
Източник: opennet.ru
