Pour une partie des architectes d’applications, MySQL présente 2 gros inconvénients : il est la propriété d’Oracle, ce qui aux yeux des développeurs attachés à l’Open Source n’est pas un avantage et il souffre d’immobilisme, toujours du point de vue de ces développeurs.

Il est vrai que le positionnement de MySQL dans la gamme Oracle n’a pas toujours été très clair et on peut ne pas comprendre si Oracle veut en faire un marche-pied pour inciter ses clients à aller vers des solutions plus « cossues » ou s’il le considère comme un produit à part entière, susceptible de vivre sa vie, dans le cadre du fameux LAMP : Linux, Apache HTTP,  MySQL et Python ou PHP.

De plus la concurrence s’est fortement développée, non pas avec Drizzle qui a été historiquement la première tentative pour s’opposer à Drizzle quand MySQL est passé sous contrôle Oracle (sous l’impulsion de Monty Widenius qui venait de MySQL AB), mais surtout avec MariaDB, qui fait un beau parcours, plusieurs grands noms tels Facebook ayant abandonné MySQL à son profit. Sans oublier Aurora d’Amazon.

Une version 5.7 pour la fin octobre

La dernière version de MySQL, la 5.6 remonte maintenant à 2 ans, ce qui est beaucoup dans un contexte aussi dynamique que celui des SGBD.

Conscient des lacunes de 5.6, non pas en termes de fonctionnalités mais de vitesse, Oracle a beaucoup insisté sur les performances de la nouvelle version, estimée 2 fois plus rapide que la 5.6 si l‘on en croit les résultats du test « SysBench Read-Only Point Selects », avec 1.024 connexions et 3 fois plus rapide que la version 5.

D’autres améliorations ont été apportées à MySQL : un mode de réplication multi-source présenté en une sorte de version béta et de meilleures performances pour la réplication semi-synchrone. Ce dernier mode est un moyen de garantir la bonne fin des opérations de réplications dans le processus de réplication MySQL, qui par nature est asynchrone. Une technique qui n’est pas propre à MySQL, mais qui s’applique à tous les modes de réplication asynchrone, puisque celui-ci peut entraîner un décalage dans les données, une discordance, si entre le « commit » effectué par le serveur primaire et celui donné par le serveur répliqué, il se produit une panne.

Autres nouveautés qui vont intéresser le petit monde des développeurs MySQL : la version préliminaire de MySQL Cluster 7.4, la disponibilité de la « release candidate » de MySQL Fabric, un SGBD haute disponibilité, histoire évidemment de contrer la sortie de MariaDB Enterprise Cluster, mais aussi la sortie de la version MySQL Workbench 6.1, l’outil d’administration, connecté à MySQL.

Le moteur de base de données

Il faut bien faire la distinction entre MySQL en tant que container de données, avec sa description des types de données et leurs liens via les clés (la perception logique de la base) et le moteur de stockage, qui est essentiellement la mise en œuvre de SQL et de ses instructions de requêtage.

Nativement MySQL était équipé du moteur MyISAM, qui était en tout cas le plus ancien, particulièrement rapide pour les instructions SELECT et INSERT, qui supporte le verrouillage de tables et relativement souple en termes d’intégrité des données. Les inconvénients de MyISAM, qui expliquent qu’on lui préfère désormais InnoDB, sont son incapacité à traiter les clés étrangères et son inadéquation avec le mode transactionnel.

Pour continuer dans la voie des performances et de la garantie d’intégrité, Oracle a donc annoncé des améliorations sur InnoDB, le moteur de stockage qui était livré en standard avec MySQL par la compagnie MySQL AB, que Sun avait rachetée en 2009, avant d’être lui-même repris par Sun…et donc aujourd’hui propriété d’Oracle. Un moteur de stockage susceptible de fournir des transactions ACID : Atomicité, Cohérence, Isolation et Durabilité et la gestion des clés étrangères avec contrôle de la cohérence.

Les améliorations d’InnoDB portent essentiellement sur les performances, sur le parallélisme des transactions, sur le partitionnement, etc.

La disponibilité de MySQL 5.7 a été fixée au 26 octobre 2015.

Pour ce qui est enfin, de la réponse à apporter au positionnement de MySQL 5.7 dans la gamme Oracle, elle semble désormais couler de source (sans jeu de mot), car Oracle en fait manifestement un produit à part entière, performant et ouvert, doté d’un moteur de stockage très rapide et bien adapté aux exigences modernes du stockage. On est bien loin des premières moutures de Monty Widenius et MySQL 5.7 va probablement raviver quelques vieilles discussions sur le choix de MySQL ou de l’un de ses concurrents.