MySQL suscite toujours un large intérêt auprès de la communauté des développeurs. Bien adapté aux petites applications transactionnelles, mais aussi à des plates-formes spécifiques telles que les annuaires, ses promoteurs ne sont pas décidés à baisser la garde.

La concurrence y est sans doute pour quelque chose. Celle de MariaDB, en particulier et le ralliement spectaculaire de Microsoft, qui fait désormais partie de son comité exécutif, tout comme Facebook. Le fait est qu’il était en tout cas devenu impératif que le SGBD créé en 1995 par Michael Widenius, monte en version et fonctionnalités, pour ne pas se laisser distancer.

Sa nouvelle mouture, la 8.0, a été présentée en septembre 2017 et concrétise une stratégie plus volontariste de publication d’une nouvelle release tous les 18-24 mois, comme le font d’autres grands éditeurs, tels que Microsoft ou Oracle. Ces derniers estimant qu’il n’y a plus de vérité pour être présent sur le marché, en dehors d’une publication à flots continus, au risque de saturer les clients, qui auront beaucoup de mal à adapter leurs plates-formes d’administration.

La version 8.0 de MySQL se caractérise par plusieurs évolutions intéressantes :

  • le support « première-classe » d’Unicode 9.0, qui on le rappelle est le nouveau jeu de caractères étendu à 128 172 caractères, dont 7 500 nouveaux et parmi lesquels 72 nouveaux « emojis », Google ayant été l’un des tout premiers éditeurs à le prendre en compte. Il s’agit pour l’essentiel de caractères appartenant à des langues peu répandues, mais peut-être y trouverez-vous un intérêt. A noter que MySQL 8.0 ne prend plus le jeu latin1 par défaut, désormais remplacé par le jeu utf8mb4, plus rapide que le précédent utf8mb3, désormais déprécié.
  • les fonctions de fenêtrage, qui permettent d’effectuer un traitement sur un ensemble de lignes en relation avec la ligne courante, celle sur laquelle on est positionné, chaque ligne « participante » conservant cependant son identité propre.
  • la récursivité dans une requête SQL, qui peut donc se référer à elle-même.
  • le support natif de JSON avec des performances fortement améliorées, mais aussi la possibilité de fusionner dans une même requête, des données traditionnelles MySQL et des données semi-structurées JSON. Voilà une bonne nouvelle, les partenaires LeMarson connaissant bien l’importance qu’a pris le format JavaScript JSON dans leurs applications. Dans le même ordre d’idées, MySQL 8.0 permet désormais de stocker des documents en format JSON et garantit leur consistance (gros problème natif NoSQL par rapport à une base relationnelle), en effectuant si nécessaire des rollbacks pour revenir à une version antérieure et « propre » des documents.

72 « émojis » sont désormais accessibles pour les bases MySQL 8.0, celles-ci reconnaissant si nécessaire le jeu de caractères Unicode 9.0.

 

D’autres nouveautés sont apparues :

  • des options de blocage de lignes, avec SKIP LOCKED, de manière à sauter un groupe de lignes, avant de continuer un traitement
  • l’adaptation du SGBD de manière automatique à l’espace mémoire disponible, histoire d’être le plus performant possible dans un environnement de mémoire virtuelle
  • ainsi qu’une disposition qui permet d’exclure des index de tables dans une requête d’optimisation, via la disposition « invisible index »

Il est évident que les chefs de projets ne pourront pas ignorer la nouvelle mouture de MySQL car le SGBD reste une valeur sûre du développement, l’archétype des solutions Open Source (le M de LAMP). De très nombreux développeurs n’ont pas (encore) franchi le pas vers MariaDB et apprécieront que leur SGBD, vieux de 22 ans, continue d’évoluer et n’est ni moribond, ni grabataire.