La société Oracle a formé une nouvelle branche de son SGBD MySQL 9.0. Les compilations de MySQL Community Server 9.0.0 sont préparées pour toutes les principales distributions Linux, FreeBSD, macOS et Windows. Dans le cadre du modèle de publication des versions introduit l'année dernière, MySQL 9.0 appartient aux branches « Innovation », auxquelles seront également rattachées les prochaines versions majeures MySQL 9.1 et 9.2. Les branches d'innovation sont recommandées pour ceux qui souhaitent accéder plus tôt à de nouvelles fonctionnalités. Elles sont publiées tous les 3 mois et ne sont prises en charge que jusqu'à la publication de la prochaine version majeure (par exemple, le support de la branche 9.0 sera arrêté après l’apparition de la branche 9.1). Un LTS sera planifié dans environ un an, recommandé pour les déploiements nécessitant prévisibilité et durée de conservation d'un comportement inchangé. Suivant la branche LTS, une nouvelle branche d'innovation sera créée : MySQL 10.0.
Les principales modifications de MySQL 9.0 :
- Lors de l'exécution de la construction « EXPLAIN ANALYZE INTO », il est désormais possible de sauvegarder la sortie au format JSON dans une variable utilisateur, qui peut ensuite être utilisée comme argument dans des fonctions travaillant avec JSON.
EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt
- Il est désormais permis de formuler les instructions « CREATE EVENT », « ALTER EVENT » et « DROP EVENT » sous forme de requêtes paramétrées à l'intérieur de procédures stockées. La création de requêtes paramétrées se fait en utilisant l'expression PREPARE, et l'exécution avec l'expression EXECUTE.
CREATE PROCEDURE sp(n INT)
BEGIN
SET @s1 = « CREATE EVENT e ON SCHEDULE EVERY «;
SET @s2 = » SECONDE
STARTS CURRENT_TIMESTAMP + INTERVAL 10 SECONDS
ENDS CURRENT_TIMESTAMP + INTERVAL 2 MINUTES
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;
FIN - Deux nouvelles tables systèmes ont été ajoutées, contenant des informations sur les variables système : variables_metadata — contient des informations sur les noms, portée, types et plages de valeurs de toutes les variables système prises en charge par le serveur MySQL ; global_variable_attributes — contient les valeurs des attributs définis pour les variables globales, telles que offline_mode et read_only.
- Le plugin serveur mysql_native_password, précédemment déclaré obsolète et assurant l'authentification par mot de passe, a été retiré. Il est recommandé de passer au plugin caching_sha2_password, qui utilise l'algorithme SHA2 pour le hachage au lieu de SHA1.
- 15 nouvelles variables ont été ajoutées pour configurer et inspecter le moteur MLE (Composant de moteur multilingue), permettant d'utiliser dans les procédures stockées et fonctions du code dans des langages autres que SQL.
Source : opennet.ru
