MariaDB vs MySQL : un aperçu des technologies de base de données

Nous explorerons les distinctions entre MariaDB et MySQL, deux technologies de base de données similaires mais distinctes qui alimentent des millions de sites Web à travers le monde.

Différences entre MariaDB et MySQL

Malgré le fait que MariaDB soit un fork de MySQL, ces deux systèmes de gestion de bases de données présentent des différences substantielles :

Licence

MariaDB est entièrement sous licence GPL (General Public License), tandis que MySQL adopte une approche à double licence.

Gestion des pools de Thread

Chacun des deux gère les pools de thread de manière distincte.

Support des moteurs de stockage

MariaDB se distingue en offrant un support pour de nombreux moteurs de stockage différents.

Performances

Dans de nombreux scénarios, MariaDB affiche des performances améliorées par rapport à MySQL.

MySQL : qu’est-ce-que c’est ?

MySQL est un système de gestion de base de données relationnelle (SGBDR) qui a été créé en 1995 par Michael Monty Widenius et David Axmark. À cette époque, le marché était largement dominé par les solutions propriétaires onéreuses de Microsoft et Oracle.

Son rôle a été essentiel dans la construction de l’Internet tel que nous le connaissons aujourd’hui. L’article du Linux Journal cité éclaire les débuts de MySQL.

En adoptant précocement la double licence et en utilisant la GNU GPL pour sa version gratuite, MySQL a ouvert la voie à de nombreux autres éditeurs de logiciels. Les applications web, déployées sur serveur en tant que composant essentiel de la pile LAMP, intègrent généralement MySQL sans distribuer leur code, permettant ainsi à quiconque d’utiliser librement le logiciel pour ses propres produits web.

Moins d’une décennie après son lancement, MySQL dominait le marché des bases de données relationnelles open source.

Selon Google Trends, l’intérêt pour MySQL a atteint son apogée entre 2004 et 2005 : [Insérer le lien ou la référence pour Google Trends].

Utilisateurs notables de MySQL

MySQL est largement adopté par diverses entreprises de renom, notamment :

  • Facebook : En 2011, Facebook traitait jusqu’à « 60 millions de requêtes par seconde » et gérait pratiquement toutes les interactions des utilisateurs, telles que les likes, les partages, les mises à jour de statut, et plus encore.
  • Netflix : La partie facturation de la plateforme Netflix utilise MySQL.
  • YouTube, com, Airbnb, et bien d’autres.

Un autre élément clé ayant contribué à la croissance et à l’adoption de MySQL est phpMyAdmin. Cet outil d’administration de bases de données basé sur le Web facilite la gestion de MySQL sur les serveurs LAMP depuis 1998. Il offre des fonctionnalités telles que l’importation, l’exportation, la composition de requêtes complexes, la création et la suppression de tables, le tout sans nécessiter l’utilisation du terminal Linux.

WordPress et MySQL

La popularité de MySQL a été considérablement renforcée par WordPress, qui alimente environ 60% des systèmes de gestion de contenu (CMS) et représente 34% de l’ensemble du web. Depuis sa création en 2003, WordPress, écrit en PHP, utilise MySQL comme base de données. Son adoption rapide a fait de WordPress un exemple emblématique du logiciel open source, aligné avec la philosophie de la pile de serveurs sous-jacente.

Un facteur clé dans l’adoption de MySQL a été sa compatibilité avec Linux, ce qui l’a conduit à être inclus par défaut dans de nombreuses distributions Linux. Aujourd’hui, il est intégré par défaut dans des distributions telles qu’Ubuntu. DisplayWP propose un graphique illustrant la version minimale de MySQL nécessaire pour chaque version de WordPress.

Aperçu de MySQL et du modèle de base de données relationnelle

MySQL a été conçu comme un Système de Gestion de Bases de Données Relationnelles (SGBDR). Le modèle de base de données relationnelle, qui remonte aux années 1970, est fondé sur les « Douze Commandements de Codd ». En résumé, ce modèle organise les données en tableaux composés de colonnes et de lignes. Chaque ligne est identifiée de manière unique par une clé (clé primaire selon le jargon SQL).

Les clés primaires servent de références pour établir des relations entre différentes tables. Par exemple, la colonne FOREIGN KEY d’une table peut faire référence à une colonne PRIMARY KEY d’une autre table, définissant ainsi une relation entre les lignes de tables distinctes.

Selon Essential SQL, « la clé primaire se compose d’une ou plusieurs colonnes dont les données sont utilisées pour identifier de manière unique chaque ligne de la table ». Les données des colonnes clés primaires doivent être uniques et ne peuvent pas être vides ou NULL. Dans une base de données relationnelle, « la table n’a qu’une seule clé primaire, et sa définition est obligatoire ».

D’autre part, une « clé étrangère » est un ensemble d’une ou plusieurs colonnes d’une table qui se réfère à la clé primaire d’une autre table. Aucun code spécial, configuration ou définition de table n’est nécessaire pour « désigner » officiellement une clé étrangère.

Avec les bases de données relationnelles, il est possible de modéliser les données de manière sophistiquée et de définir les connexions entre les différents éléments de données. Dans un exemple simple, deux tables sont créées, avec des lignes pouvant être reliées, par exemple, chaque personne possédant une voiture.

Cela permet d’interroger les données selon les besoins, de filtrer les résultats en fonction de différents critères et de construire des requêtes plus complexes. Les bases de données relationnelles, et les bases de données en général, utilisent des langages spécifiques au domaine, tels que le SQL (Structured Query Language), qui est le langage prédominant, sinon le seul, utilisé par les SGBDR.

Acquisition par Sun et l’Arrivée d’Oracle

En 2008, MySQL AB, la société à l’origine de MySQL, a été acquise par Sun Microsystems, une entreprise connue pour avoir créé JAVA, le système d’exploitation Solaris Unix, et pour ses contributions significatives à diverses technologies informatiques. Cette acquisition s’est concrétisée pour environ 1 milliard de dollars, selon Business Wire.

Oracle entre en scène

En 2010, Oracle Corporation, un fournisseur de la plus grande base de données source fermée à cette époque, a acquis Sun Microsystems, incluant ainsi MySQL. Cette acquisition a suscité des inquiétudes dans la communauté open source, car Oracle était un concurrent direct de MySQL et représentait l’antithèse du modèle de logiciel libre sous licence GPL adopté par MySQL.

Craintes dans la communauté open source

Certains membres de la communauté open source ont interprété cette acquisition comme une stratégie de défense de la part d’Oracle, étant donné que MySQL était en croissance rapide et menaçait la part de marché d’Oracle. Les craintes étaient qu’Oracle, en acquérant MySQL, cherchait à contrôler la marque, disperser la communauté et protéger sa base de données phare.

Appel de Monty Widenius et la création de MariaDB

Monty Widenius, le créateur de MySQL, a publié un appel sur son blog appelant à l’aide pour sauver MySQL des griffes d’Oracle. Il a exhorté les gens à écrire à la Commission européenne pour soutenir la cause et garantir le développement continu de MySQL en tant que projet open source.

Malgré les préoccupations exprimées par la communauté open source, l’acquisition a eu lieu en 2010. Monty Widenius a quitté Sun, créé Monty Program AB, forké MySQL, jetant ainsi les bases de MariaDB, une alternative à MySQL. Bien que le pire scénario redouté par certains ne se soit pas concrétisé, avec Oracle n’ayant pas acquis MySQL pour le supprimer, cela a néanmoins marqué un tournant dans l’histoire de MySQL et des bases de données open source.

Qu’est-ce que MariaDB ?

MariaDB a vu le jour en octobre 2009 avec sa première version, la 5.1.38 Beta, basée sur MySQL 5.1.38. Il s’agit d’un fork créé dans le but de « garantir que la base de code MySQL resterait libre pour toujours ».

Au moment du fork, la crainte la plus répandue était que l’acquisition pourrait constituer une prise de contrôle hostile visant à éliminer MySQL. Cette inquiétude, au moins en partie, s’est révélée infondée.

En 2009, Monty Program AB et Percona, une entreprise fournissant des services MySQL haut de gamme, ont créé l’Open Database Alliance. Leur objectif était de « réunir tous les développements et services liés à MySQL, offrant une solution à la fragmentation et à l’incertitude des communautés, entreprises et experts techniques impliqués dans MySQL ».

L’idée était de devenir « le centre de l’industrie pour la base de données open source MySQL, y compris MySQL et le code dérivé, les binaires, la formation, le support et d’autres améliorations pour la communauté MySQL et l’écosystème des partenaires ».

Rétrospectivement, ces initiatives ont peut-être contribué à éviter un scénario plus grave pour la célèbre base de données.

MariaDB vs MySQL : compatibilité

En tant que fork de MySQL, l’objectif de MariaDB (nommé d’après la fille de Widenius) était de sécuriser l’accès futur à MySQL et son développement continu. Ainsi, MariaDB a été conçu comme un remplacement complet des binaires – un remplacement « drop-in » – permettant à tous les utilisateurs de MySQL de les échanger sur leurs systèmes.

MySQL étant une application client-serveur, les programmes de serveur comme mysqld, le client mysql, et les programmes auxiliaires tels que mysqldump conservent le même nom avec MariaDB.

Le remplacement de MySQL par MariaDB devient un processus transparent pour la plupart des applications et des besoins, en particulier pour WordPress. Les logiciels existants, des outils CMS populaires aux applications telles que phpMyAdmin, peuvent être utilisés sans modification, et les données réelles peuvent être exportées/importées d’un système à l’autre sans problème.

L’objectif de MariaDB est de maintenir une compatibilité totale avec MySQL. Selon le site de MariaDB :

  • Les fichiers de définition de tables sont compatibles.
  • Toutes les API et protocoles clients sont compatibles.
  • Les noms de fichiers, binaires et chemins sont identiques sur MySQL et MariaDB.
  • Les ports et sockets sont les mêmes.
  • Tous les connecteurs MySQL, tels que PHP, Perl, Python, Java, et autres, fonctionnent également avec MariaDB.
  • Le package client MySQL est tout aussi fonctionnel avec MariaDB qu’avec MySQL.

Des fusions mensuelles sont effectuées pour garantir la compatibilité et intégrer toutes les nouvelles fonctionnalités et corrections de bogues d’Oracle.

MariaDB vs MySQL : les raisons du « Fork »

La sortie de MariaDB a été motivée par diverses raisons. La principale crainte résidait dans le risque qu’Oracle élimine son concurrent florissant pour protéger son produit principal plus lucratif. Cela aurait privé les utilisateurs d’un produit exceptionnel et gratuit.

D’autres motivations étaient liées à la garantie que MySQL resterait libre et open source. Aujourd’hui, MariaDB est entièrement sous licence GPL avec toutes ses fonctionnalités, tandis que MySQL conserve une approche à double licence, avec des fonctionnalités payantes sous licence propriétaire, appelée la « MySQL Enterprise Edition ».

Comparativement, MariaDB bénéficie d’un avantage clair grâce à la licence GPL sous laquelle il est publié. En raison du caractère propriétaire de la base de code, Oracle ne peut pas légalement tirer profit du code de MariaDB et l’intégrer dans sa base de données.

Michael « Monty » Widenius, le fondateur de MariaDB, a promis : « Quand Oracle publiera une extension fermée pour MySQL, nous publierons également une extension open source. »

Questions communautaires

Un autre motif derrière le fork était de maintenir le projet « ouvert » en tant que projet communautaire, comparable à WordPress, avec une direction, un développement et une licence ouverts. Une analyse révèle que la majorité du code de MySQL provient de développeurs internes, bien que les développeurs d’Oracle reconnaissent les contributions occasionnelles de la communauté.

Pour mettre les choses en perspective, le référentiel du serveur MariaDB compte actuellement plus de 186 000 commits, plus de 370 branches et 200 contributeurs, tandis que MySQL compte plus de 148 000 commits, 9 branches et 72 contributeurs.

Les discussions sur le développement de MariaDB, sa direction et les votes sur les fonctionnalités sont ouvertes au public via une liste de diffusion dédiée, en plus de la liste Maria Discuss.

Les « Maria Captains » forment une équipe de développeurs de confiance avec un accès en écriture aux principales branches de MariaDB. Les développeurs peuvent soumettre des correctifs à cette équipe, qui les examinera, approuvera et les intégrera à l’endroit approprié.

En 2012, la Fondation MariaDB a été créée pour superviser le développement de la base de données.

Peu de temps après le fork, de nombreux développeurs MySQL d’origine ont rejoint le projet MariaDB, et des distributions Linux telles que Red Hat, CentOS, Arch Linux, Debian, OpenSuse, Slackware, Fedora ont adopté MariaDB comme SGBDR par défaut, tout comme les distributions BSD, FreeBSD et OpenBSD, et Ubuntu incluent MariaDB. Des entreprises telles qu’Alibaba Cloud, Tencent, IBM, Microsoft et Booking.com sont devenues des sponsors platine.

Notablement, des membres d’Automattic, les créateurs de WordPress, siègent au conseil d’administration de la Fondation MariaDB.

Depuis la scission, MariaDB a connu un développement rapide, passant de la version 5. , compatible avec MySQL, à la version 10.0 en 2012, reflétant les avancées fonctionnelles réalisées.

Pour des raisons de performances, la Fondation Wikimedia a migré Wikipédia vers MariaDB en 2013, suivi de Google. Les utilisateurs de MariaDB comprennent maintenant Deutsche Bank, DBS Bank, Nasdaq, Verizon, Craigslist, et d’autres. Parmi les utilisateurs de MySQL, on trouve GitHub, la Marine américaine, la NASA, Tesla, Netflix, WeChat, Facebook, Zendesk, Twitter, Zappos, YouTube, et Spotify.

Depuis sa première version, l’intérêt pour le successeur de MySQL n’a cessé de croître, comme en témoigne les Google Search Trends.

MariaDB vs MySQL : principales différences

Bien que MariaDB ait débuté en tant que système entièrement compatible avec MySQL, il est prévisible que leurs trajectoires divergent davantage à l’avenir.

Dans son dernier billet, Widenius reconnaît les efforts d’Oracle sur la version 8.0 de MySQL, tout en soulignant quelques différences et avertissements, tels que :

Thread pool : Similaire au problème de serveur entre Nginx et Apache, MySQL attribuait des threads à chaque connexion client, ce qui, comparé au démarrage d’un programme complet sur un PC, était inefficace. MariaDB a introduit sa propre solution dans la version 5.5.

Colonnes invisibles : Cette fonctionnalité est exclusive à MariaDB depuis la version 10.3.3.3. Ces colonnes ne renvoient pas les résultats dans une instruction SELECT , et il n’est pas nécessaire de leur attribuer une valeur dans une instruction INSERT.

Microsecondes dans les types de données temporelles : MariaDB a introduit la précision des microsecondes dans ses types de données temporelles.

Moteurs de stockage : MariaDB utilise divers moteurs de stockage tels que XtraDB, InnoDB, MariaDB ColumnStore, Aria, Archive, Blackhole, Cassandra Storage Engine, Connect, CSV, FederatedX, Memory storage engine, Merge, Mroonga, MyISAM, MyRocks, QQGraph, Sequence Storage Engine, SphinxSE, Spider, TokuDB. ColumnsStore est particulièrement intéressant en termes de performances, permettant une mise à l’échelle linéaire pour traiter des pétaoctets de données. Pour plus d’informations, consultez leur blog. En comparaison, les moteurs de stockage de MySQL comprennent InnoDB, MyISAM, Memory, CSV, Archive, Blackhole, Merge, Federated, Example.

Vues des bases de données : MariaDB introduit des optimisations significatives dans les vues des bases de données en n’interrogeant que les tables nécessaires.

Quelques fonctionnalités introduites par MySQL comprennent le Type de Données Natif JSON, MySQL Shell dans la version 8.0 (qui prend en charge les scripts JavaScript et Python, mais n’est pas compatible avec MariaDB), et une extension d’authentification basée sur SHA-256, renforçant la sécurité sur mysql_native_password.

En résumé, bien que MySQL soit dirigé par le plus grand fournisseur de bases de données commerciales au monde, les divergences entre MySQL et MariaDB sont déjà apparentes. MySQL bénéficie de l’apport constant d’ingénieurs à plein temps travaillant 24 heures sur 24 pour développer des fonctionnalités de qualité supérieure. D’un autre côté, MariaDB tend à rattraper son retard dans l’ajout de fonctionnalités, bien que cela ne soit pas toujours immédiat ni garanti.

Cependant, MariaDB présente des avantages dans de nombreux scénarios, offrant des performances améliorées, des correctifs et des mises à jour plus agiles, une stabilité accrue dans son avenir open source, et une perspective optimiste.

Recommandés Pour Vous

A propos de l'Auteur: Alex Bruno

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *