Aller au contenu

Préférences et cookies

Afin d’améliorer votre expérience sur notre site et de réaliser des statistiques de visites, nous utilisons des cookies. Rien n’est déposé sans votre accord, et le refus n’enlève l’accès à aucun contenu. Ce choix peut être modifié à tout moment.

Gérer les traceursVos données

Personnaliser

ArticleDonnées & IA

Quoi de neuf dans MySQL 8.0 ?

La première release candidate de la version 8.0 de la base de données open source MySQL, que l'on retrouve couramment dans plusieurs piles d'applications Web, a été dévoilée. En plus d'un support Unicode amélioré, d'une meilleure compatibilité JSON et de la gestion de document, celle-ci s'enrichit également de fonctionnalités attendues depuis longtemps, comme une fonction de fenêtre.

La rédaction

La très mondialement appréciée base de données open source MySQL est arrivée dans une huitième mouture. Cette dernière apporte notamment un support intégré de première classe avec le standard Unicode 9.0, des fonctions de fenêtre et la syntaxe SQL récursive, laquelle permet de gérer des requêtes précédemment impossibles ou difficiles à écrire, ainsi qu'une prise en charge étendue des données JSON natives et une fonction « Document Store ». À noter aussi que la version 8.0 de MySQL saute plusieurs numérotations à partir de la version 5.5, la 6.0 ayant été abandonnée et la 7.0 ayant été réservée pour la version cluster de MySQL.

Date de sortie

MySQL n’a pas fixé de date de sortie pour MySQL 8.0, la politique de MySQL étant de livrer « une nouvelle version - générale - tous les 18 à 24 mois ». Une dernière version générale de MySQL 5.7 a été livrée le 21 octobre 2015, si bien que logiquement, la version de production de MySQL 8.0 devrait arriver en octobre 2017.

Vers le standard Unicode

L’adoption du standard Unicode par défaut est probablement l'un des plus grands changements de la nouvelle mouture. MySQL fait face depuis longtemps à des problèmes pointus avec l’Unicode. Et l’un des objectifs de longue date de MySQL 8.0 était de résoudre le plus grand nombre de problèmes possibles avec lui. MySQL 8.0 n'utilise plus le latin1 comme encodage par défaut, afin d’éviter que les nouveaux utilisateurs ne choisissent cette option qui pose des problèmes connus. Le set de caractères recommandé par défaut pour MySQL 8.0 est désormais l’utf8mb4, normalement plus rapide que le jeu de caractères utf8mb3 désormais obsolète. La nouvelle version est capable de supporter des collations plus flexibles et d’être sensible à la casse. À noter que cet Unicode amélioré supportera à la fois les jeux de caractères non occidentaux et les emoji de plus en plus présents.

Des fonctions de fenêtre

Un grand nombre d’implémentations SQL supportent déjà les fonctions de fenêtre, lesquelles permettent d'effectuer des calculs agrégés sur plusieurs lignes sans empêcher l’accès aux lignes individuelles à partir de la requête. Ces calculs agrégés sont possibles dans MySQL sans le support de la fonction de fenêtre, mais la manipulation est lente et laborieuse. Pour parer à ce manque, MySQL 8.0 se dote de fonctions de fenêtre via le mot-clé standard OVER SQL. C’est la même méthode que celle utilisée dans des produits concurrents comme PostgreSQL.

Autre ajout, celui des expressions de table courante récurrentes qui permettent d'effectuer des opérations récursives à l’intérieur de la requête sans avoir à passer par des curseurs ou d'autres méthodes de contournement anti-productives.

Support amélioré des documents et du JSON

MySQL 5.7 supportait déjà le JSON, ajouté pour mettre la base de données au même niveau que les bases de données NoSQL qui utilisent le JSON nativement. MySQL 8.0 étend le support JSON en améliorant ses performances. Il se dote aussi de fonctions permettant d'extraire des données d'une requête JSON (comme la requête de type « Top-N ») et de nouvelles fonctions d'agrégation qui permettent de fusionner dans une requête des données structurées natives MySQL avec des données JSON semi-structurées.

Autre amélioration relative au JSON : l’ajout de capacités « document store » dans MySQL. Les lectures/écritures dans le « Document Store » de MySQL sont cohérentes sur le plan opérationnel, ce qui permet des opérations de « rollback » sur les modifications apportées aux données JSON. Les données de document stockées dans le format ouvert GeoJSON pour les données géospatiales peuvent être indexées, ce qui permet d’effectuer des recherches de proximité.

Les autres fonctions clés de MySQL 8.0

Parmi les autres changements prévus de MySQL 8.0, on peut citer plus d'options pour gérer les lignes verrouillées via les mots-clés SKIP LOCKED et NOWAIT. SKIP LOCKED permet d’ignorer ce type de lignes pendant une opération, alors que NOWAIT envoie un message d’erreur dès qu’il en rencontre. MySQL peut aussi occuper automatiquement la totalité de la mémoire disponible pour utiliser au mieux les déploiements de machines virtuelles. Enfin, il est possible d’exclure manuellement les indexes de l'optimiseur de requête avec la fonction « index invisible ». Les index marqués comme invisibles sont mis à jour avec les modifications apportées aux tables, mais ne sont pas utilisés pour optimiser les requêtes. Cette fonction permet, par exemple, de déterminer de façon non destructive si un index particulier doit être conservé ou non.

Des versions bêta de MySQL 8.0 son disponibles pour Windows, MacOS, plusieurs versions de Linux, FreeBSD et Solaris. Le code source est également disponible. Pour les obtenir, descendre jusqu’à l’onglet « Development Release » de la page des téléchargements.

Newsletter

La Quotidienne LMI

Recevez chaque matin l’actualité IT de la rédaction.

Quoi de neuf dans MySQL 8.0 ?