Nous étions jeudi 1er février au meetup MySQL organisé par LeMug.fr et SkySQL. Nous avons pu y approfondir nos connaissances sur MariaDB, le remplaçant libre de MySQL.
MariaDB : Un nouveau SGBD ?
MySQL est un Système de Gestion de Base de Données apparu en 1995 qui est devenu en quelques années un des plus utilisés dans le monde. En 2008, l’entreprise MySQL AB éditrice de MySQL est rachetée par Sun Microsystems, qui se fait racheter un an plus tard par Oracle.
_ Michael Widenius, aussi connu sous le pseudonyme de Monty, est le principal auteur de la première version de MySQL, et est le fondateur de MySQL AB. Il a quitté Sun Microsystems afin d’assurer la disponibilité d’une version gratuite et stable de son bébé.
_ C’est ainsi qu’est né MariaDB, un projet sous licence GPLv2 se basant sur MySQL, qui se veut être très stable, plus robuste, plus performant, et surtout 100 % compatible avec ce dernier.
MariaDB se place donc dans la continuité de MySQL : nous y retrouvons toutes les fonctionnalités de ce dernier, avec, si possible, des corrections de bugs et des améliorations de performances. La compatibilité reste totale et les binaires de l’un sont échangeables avec ceux de l’autre, à condition de rester sur des versions mineures compatibles :
- les données et les définitions de table (.frm) sont identiques ;
- toutes les structures et les APIs clientes, ainsi que tous les protocoles sont identiques ;
- tous les noms de fichiers, binaires, chemins, ports, sockets… devraient être les mêmes ;
- tous les connecteurs (PHP, Perl, Python, Java, .NET, MyODBC, Ruby, MySQL C connector…) fonctionnent sans changement ;
- le paquet mysql-client fonctionne aussi avec un serveur MariaDB.
Parmi les différences, nous pouvons noter l’apparition de plusieurs moteurs de stockage tels que XtraDB, et Aria, une sorte de MyISAM transactionnel, ou encore FederatedX.
XtraDB est une version améliorée d’InnoDB, le moteur de stockage le plus souvent utilisé actuellement sur les projets PHP/MySQL. En effet, XtraDB est conçu pour être plus performant, notamment en exploitant plus efficacement les processeurs multi-cores et la mémoire.
Retours d’expérience
Le 1er février, Colin Charles, actuellement développeur chez Monty Program AB, le plus gros sponsor de MariaDB, a fait une présentation du projet dans un pub parisien.
La présentation et les discussions lors de cette soirée nous ont appris que des sites à fort trafic utilisent d’ores et déjà MariaDB en production : pap.fr, Pixmania, Paybox, … et d’autres entreprises tels que Viadeo l’utilisent pour leur BI.
_ Toutes ces applications qui ont migré de MySQL vers MariaDB ont gagné en performance. Pixmania serait passé de 50 serveurs MySQL à seulement 10 MariaDB, avec très certainement d’autres optimisations, mais nous n’avons pas pu avoir plus d’informations.
Benchmark sur une application existante
Après avoir eu écho de ces informations et de ces chiffres plutôt impressionnants, nous avons décidé de réaliser un benchmark rapide des serveurs MySQL 5.1 et 5.5, et de MariaDB 5.2. Pour cela, nous avons utilisé une page d’un projet existant qui contient de nombreuses requêtes SQL. Nous avons choisi une page ayant des requêtes de complexités différentes, certaines très simple, d’autres avec de nombreuses jointures.
Le benchmark a été fait en effectuant 5 000 requêtes sur la page en question, et en utilisant les mêmes configurations pour tous les serveurs, les étapes ont été :
– Lancement de MySQL 5.1
– Lancement de Apache Benchmark sur la page Web
– Arrêt de MySQL 5.1
– Lancement de MySQL 5.5
– Lancement de Apache Benchmark sur la page Web
– Arrêt de MySQL 5.5
– Lancement de MariaDB 5.2
– Lancement de Apache Benchmark sur la page Web
Voici les résultats obtenus :
Nous remarquons qu’il y a une nette progression des performances entre les 2 versions de MySQL testées, et que MariaDB, bien qu’en version 5.2, est tout de même au-dessus de MySQL 5.5.
MySQL 5.5 est actuellement la version la plus avancée du SGBD et bénéficie de gains très importants sur ses prédécesseurs. La fusion de cette version dans MariaDB est actuellement en cours, MariaDB 5.3 est d’ores et déjà en release candidate, la version 5.5 suivra rapidement. Cette future version du SGBD disposant des dernières améliorations d’Oracle devrait donc surpasser les mesures effectuées avec MariaDB 5.2.
Conclusion
Si vous n’êtes pas encore prêt à passer à MariaDB en production, il est tout de même grand temps de vous y intéresser :
- performances accrues ;
- licence libre ;
- support pour entreprises (via l’entreprise SkySQL par exemple) ;
- parfaitement compatible, aucune migration de données nécessaire.
Petite anecdote : « MySQL », tout comme le moteur de stockage MyISAM, vient du prénom de la fille de Monty « My », MariaDB vient bien évidemment du prénom de sa plus jeune fille.
Merci à SkySQL et LeMug.fr pour l’accueil, les bières et l’organisation de la conférence !