Sortie de MySQL 9.2, ajout de l’API transactionnelle JavaScript
Explorez les points forts de la version 9.2 de MySQL, y compris les nouvelles fonctionnalités, les éléments obsolètes et les fonctionnalités supprimées, pour une gestion et des performances de base de données améliorées.
MySQL, un SGBDR open-source largement adopté, a lancé sa deuxième mise à jour de la série 9.x, la version 9.2, apportant plusieurs nouvelles fonctionnalités tout en dépréciant et en supprimant certaines autres.
L’un des points forts de la version est le nouveau privilège CREATE_SPATIAL_REFERENCE_SYSTEM, qui accorde aux utilisateurs la possibilité d’exécuter des instructions telles que « CREATE SPATIAL REFERENCE SYSTEM », « CREATE OR REPLACE SPATIAL REFERENCE SYSTEM » ET « DROP SPATIAL REFERENCE SYSTEM ».
Toutefois, l’exécution de ces instructions sans ce privilège (ou le privilège SUPER) génère une erreur. Bien que le privilège SUPER puisse toujours être utilisé pour ces instructions, les développeurs doivent traiter cette utilisation comme obsolète et planifier les transitions en conséquence.
Du côté des bibliothèques JavaScript, il y a beaucoup de changements, le plus frappant étant le composant de moteur multilingue (MLE) de MySQL, qui prend désormais en charge les bibliothèques JavaScript réutilisables, ce qui facilite le partage et la gestion des fonctions JavaScript entre différents programmes stockés.
En d’autres termes, vous pouvez désormais organiser efficacement votre code en modules réutilisables avec les instructions CREATE LIBRARY et DROP LIBRARY.
De plus, les bibliothèques JavaScript peuvent être incluses dans d’autres programmes stockés via la nouvelle clause USING
dans « CREATE FUNCTION » ou « CREATE PROCEDURE ». De plus, MySQL 9.2.0 fournit une instruction pratique « SHOW CREATE LIBRARY » pour récupérer le code des bibliothèques existantes, ainsi que deux nouvelles tables de schéma d’information (LIBRARIES et ROUTINE_LIBRARIES) pour suivre et gérer ces ressources JavaScript.
Le composant MLE étend sa portée en permettant aux routines JavaScript d’appeler des fonctions, des procédures et des variables de session stockées dans MySQL. Désormais, JavaScript peut appeler des fonctions ou des procédures MySQL via des méthodes telles que getFunction()
et getProcedure().
Il convient également de noter que les variables de session sont désormais accessibles directement via l’objet Session
global en JavaScript. La version 9.2 introduit également un accès JavaScript direct aux fonctions intégrées de MySQL telles que rand()
, sleep()
, uuid()
et isUUID()
via l’objet Mysql
global.
La prise en charge des transactions est un autre ajout intéressant : MySQL 9.2 fournit une API transactionnelle JavaScript qui correspond aux commandes SQL standard de MySQL, telles que START TRANSACTION,
COMMIT
, ROLLBACK
et SET AUTOCOMMIT.
Des points de sauvegarde sont également inclus. Cette fonctionnalité de transaction est accompagnée de l’objet SqlError, qui permet une gestion robuste des erreurs dans les routines JavaScript.
De plus, les types de données ENUM et SET de MySQL sont désormais reconnus dans les routines stockées en JavaScript, ce qui permet une conversion transparente dans les deux sens. Par conséquent, si votre application s’appuie sur ces types, vous pouvez les utiliser directement en JavaScript sans conversions gênantes.
MySQL 9.2 introduit des informations de version de format dans la sortie de EXPLAIN FORMAT=JSON
lorsque la variable système « explain_json_format_version » est définie sur 2. Cet ajout aide les développeurs à faire la distinction entre les différents formats de sortie JSON et à adapter les outils ou les scripts en conséquence. Lorsque la version du format est 1, le résultat EXPLAIN omet ces informations de version pour maintenir la compatibilité avec les processus plus anciens.
Outre les nouveaux ajouts mentionnés ci-dessus, MySQL 9.2 signale quelques fonctionnalités comme obsolètes. L’instruction FLUSH PRIVILEGES, longtemps utilisée pour recharger les tables d’octroi, est désormais obsolète. Le plugin Version Tokens est également prévu pour être supprimé dans une future version.
Dans le même temps, la nouvelle version supprime complètement certains éléments précédemment disponibles dans la version 9.1, de sorte que les développeurs doivent être conscients de leur absence lors de la mise à niveau ou de la réplication. Par exemple, le mot-clé BINLOG n’est plus disponible pour une utilisation sans guillemets dans les routines stockées.
Pour plus de détails, consultez les notes de version ou regardez ici pour passer en revue tous les changements apportés par MySQL 9.2.