MariaDB ou MySQL : quel système de gestion de bases de données a une longueur d’avance ? Alors que MariaDB était ini­tia­le­ment axé sur le dé­ve­lop­pe­ment d’un système de rem­pla­ce­ment à la volée avec des standards com­mu­nau­taires open source élevés, les deux projets pour­sui­vent ac­tuel­le­ment des objectifs de dé­ve­lop­pe­ment très dif­fé­rents. Découvrez lesquels.

Bases de données managées
Des bases de données gérées et sûres
  • Solutions flexibles, adaptées à vos besoins
  • Ar­chi­tec­ture de niveau pro­fes­sion­nel, gérée par des experts
  • Hébergées en Europe, con­for­mé­ment aux normes de pro­tec­tion des données les plus strictes

MariaDB vs MySQL : aperçu des ca­rac­té­ris­tiques prin­ci­pales

MySQL est un système de gestion de base de données éprouvé, dis­po­nible sous forme de logiciel open source et pouvant être complété par de nom­breuses ex­ten­sions. L’équipe de dé­ve­lop­pe­ment de MariaDB, dirigée par Michael Widenius, a pris le meilleur du logiciel de base MySQL et y a ajouté de nom­breuses fonc­tion­na­li­tés. Pour savoir qui a intérêt à passer de MySQL à MariaDB, consultez le tableau suivant, qui compare les prin­ci­pales ca­rac­té­ris­tiques des deux SGBD.

Ca­rac­té­ris­tiques MySQL 8.0 MariaDB 11
Date de création 1995 2009
Dé­ve­lop­peur Oracle MariaDB Cor­po­ra­tion/Foun­da­tion
Licence GPL + pro­prié­taire GPL v2
Systèmes d’ex­ploi­ta­tion supportés Linux, Windows, macOS Prise en charge étendue de Linux
Ré­pli­ca­tion GTID, maître/esclave GTID, Galera Cluster
Par­ti­tion­ne­ment Cluster MySQL Spider, Galera
Contrôle basé sur les rôles Depuis 8.0 Depuis 10.0.5
Au­then­ti­fi­ca­tion SHA-256 ed25519
Chif­fre­ment InnoDB InnoDB, Aria, Logs
Pare-feu & masquage Pro­prié­taire Via MaxScale (BSL)
Fonctions d’analyse - Co­lumnS­tore
Backup Enteprise backup MariaDB Backup (GPL)
*Moteurs de base de données InnoDB, MyISAM… + Co­lumnS­tore, MyRocks, Aria…
In­ter­faces SQL/NoSQL Oui/Oui Oui/Oui
Con­nec­teurs C, Java, PHP, entre autres + Excel, Swift, R

Le dé­ve­lop­pe­ment de MySQL et MariaDB

L’homme derrière MariaDB et MySQL est le dé­ve­lop­peur de logiciels fin­lan­dais Michael « Monty » Widenius. Avec les Suédois David Axmark et Alan Larsson, Widenius a fondé la société anonyme MySQL AB, qui a publié la première version de MySQL en 1995. Cela a abouti à la vente du projet logiciel à Sun Mi­cro­sys­tems en 2008.

En 2009, Widenius a quitté le projet avec d’autres dé­ve­lop­peurs de base de MySQL pour se con­cen­trer sur le dé­ve­lop­pe­ment de MariaDB, le fork de MySQL. L’équipe de dé­ve­lop­pe­ment craignait qu’Oracle ne se retrouve en situation de conflit d’intérêts en dé­ve­lop­pant à la fois le logiciel open source MySQL et un logiciel de base de données pro­prié­taire.

Le dé­ve­lop­pe­ment du fork a d’abord été réalisé par la société Monty Program AB, fondée en 2009. Celle-ci a fusionné en 2014 avec SkySQL pour former MariaDB Cor­po­ra­tion. Le projet com­mu­nau­taire MariaDB Server est développé par la MariaDB Foun­da­tion.

MariaDB met fortement l’accent sur le dé­ve­lop­pe­ment ouvert. Deux principes sont au premier plan :

  • Le code source des parties du programme en cours de dé­ve­lop­pe­ment est dis­po­nible via des dépôts publics.
  • Toutes les étapes du dé­ve­lop­pe­ment sont do­cu­men­tées pu­bli­que­ment.
Conseil

Créez un « foyer » sécurisé pour vos projets Web avec l’hé­ber­ge­ment de serveurs SQL de IONOS.

MariaDB vs MySQL en com­pa­rai­son

Les systèmes de gestion de base de données MySQL et MariaDB sont basés sur le même noyau logiciel. MariaDB est un fork (une scission) de MySQL 5.1, mais a évolué au fil du temps pour devenir un système de gestion de base de données à part entière. Découvrez les dif­fé­rences entre les versions actuelles de MariaDB et de MySQL GA (General Avai­la­bi­lity) : MySQL 8.0.43 et MariaDB 11.8.2.

Structure de la base de données

MariaDB a été développé dans le but d’assurer une com­pa­ti­bi­lité totale avec la structure de la base de données, les API et les fichiers de con­fi­gu­ra­tion de MySQL, afin de permettre aux uti­li­sa­teurs d’effectuer un rem­pla­ce­ment direct. La mise à niveau de MySQL vers MariaDB ou in­ver­se­ment doit être aussi facile que la mise à niveau entre deux versions de MySQL dif­fé­rentes.

Les deux systèmes de gestion de bases de données reposent sur la même structure de base de données et sont conformes au modèle de base de données re­la­tion­nelle. Cependant, depuis sa version 10.5, MariaDB n’utilise plus mysqldump ou mysqladmin comme MySQL, mais mariadb-dump et mariadb-admin pour les tâches d’ad­mi­nis­tra­tion et les sau­ve­gardes.

Note

MariaDB s’est imposé comme un rem­pla­ce­ment 1:1 de MySQL com­pa­tible avec les binaires. Cependant, à partir de la version 8.0 de MySQL, cette com­pa­ti­bi­lité n’est plus assurée.

Moteurs de base de données

MariaDB souhaite se dis­tin­guer de MySQL prin­ci­pa­le­ment par sa flexi­bi­lité. En plus des moteurs standards supportés par MySQL, les uti­li­sa­teurs disposent d’un nombre croissant de moteurs de base de données al­ter­na­tifs pour des cas spé­ci­fiques.

Note

Un moteur de base de données est un sous-système de stockage qui permet au système de gestion de base de données de créer, lire, mettre à jour et supprimer des données dans des tables de base de données : consultez notre article sur le terme CRUD pour en savoir plus.

Le tableau suivant montre les moteurs de base de données dis­po­nibles pour MySQL 8.0.43 et MariaDB 11.8.2 (selon la do­cu­men­ta­tion).

Moteur de base de données MySQL 8.0.43 MariaDB 11.8.2 Des­crip­tion
InnoDB / XtraDB InnoDB est standard sur les deux systèmes. XtraDB était utilisé dans MariaDB jusqu’à la version 10.1
MyISAM Système de stockage obsolète sans support tran­sac­tion­nel
MEMORY Pour des tables tem­po­raires en mémoire avec des accès rapides
CSV Sau­ve­garde des tables au format CSV
Archive Compresse les données pour un stockage à long terme
BLACKHOLE Accepte les données mais ne les stocke pas ; sert au logging ou au testing
Merge Fusion de plusieurs tables MyISAM ayant la même structure
Federated / Fe­de­ra­tedX Accès à des tables distantes via le réseau (MariaDB : Fe­de­ra­tedX)
Co­lumnS­tore Moteur orienté colonnes pour l’analyse de grands volumes de données
Aria Al­ter­na­tive MyISAM tran­sac­tion­nel­le­ment sécurisée pour les tables tem­po­raires
CONNECT Accès à des sources de données externes telles que CSV, XML, ODBC
Sequence Génère des séquences de nombres (par exemple 1, 2, 3 …)
Spider Moteur de recherche avec support pour les tran­sac­tions XA

Requêtes sur la base de données

En termes d’uti­li­sa­tion, MySQL et MariaDB ne sont pas dif­fé­rents. Les deux SGBD visent une com­pa­ti­bi­lité totale avec le langage SQL. Les uti­li­sa­teurs utilisent des ins­truc­tions SQL iden­tiques pour créer, mettre à jour, récupérer ou supprimer des en­re­gis­tre­ments de la base de données.

Conseil

Pour une in­tro­duc­tion aux ins­truc­tions SQL de base, consultez notre di­dac­ti­ciel MySQL pour débutants.

Per­for­mance

MariaDB offre-t-il de meil­leures per­for­mances que MySQL ? Les tests de référence tels que DBT-3 le suggèrent. Le moteur de base de données utilisé est l’un des facteurs décisifs. Les deux com­mu­nau­tés de dé­ve­lop­peurs mettent à dis­po­si­tion des tests de référence pour les con­fi­gu­ra­tions avec dif­fé­rents sur le site de chaque projet.

MariaDB ne se contente pas de proposer un grand choix de moteurs de base de données al­ter­na­tifs, mais offre également un op­ti­mi­seur efficace pour les requêtes SQL. Depuis la version 10.0.1, MariaDB n’utilise plus les sta­tis­tiques internes de chaque moteur de base de données pour optimiser les requêtes, mais des sta­tis­tiques de table in­dé­pen­dantes du moteur. Celles-ci sont stockées dans la base de données sous forme de tables tra­di­tion­nelles et per­met­tent de collecter et d’évaluer beaucoup plus de valeurs afin de dé­ter­mi­ner un plan idéal pour l’exécution des ins­truc­tions SQL.

Note

La do­cu­men­ta­tion de MariaDB offre divers guides d’op­ti­mi­sa­tion des per­for­mances des bases de données.

MySQL propose aussi de nom­breuses in­for­ma­tions sur le réglage de la base de données (compte Web Oracle requis).

Haute dis­po­ni­bi­lité

MySQL et MariaDB sont tous deux adaptés aux scénarios de bases de données dis­tri­buées. Afin d’offrir aux uti­li­sa­teurs des systèmes à haute dis­po­ni­bi­lité avec une évo­lu­ti­vité linéaire, ces logiciels four­nis­sent des solutions de cluster :

MySQL Cluster est une base de données en temps réel conforme à la norme ACID avec une ar­chi­tec­ture multi-maîtres sans point unique de dé­fail­lance. Elle offre jusqu’à 99,9999 % de dis­po­ni­bi­lité, une sca­la­bi­lité ho­ri­zon­tale sur du matériel standard, un auto-sharding et des in­ter­faces SQL et NoSQL.

MariaDB Galera Cluster est di­rec­te­ment intégré depuis la version 10.1. Il est basé sur une ar­chi­tec­ture multi-maîtres et utilise ex­clu­si­ve­ment InnoDB (ou XtraDB). Pour les bases de données dis­tri­buées, MaxScale est également utilisé. Le proxy con­fi­gu­rable pour la ré­par­ti­tion de charge offre des fonctions telles que le bas­cu­le­ment, la mise en cache, le splitting lecture/écriture et des mesures de pro­tec­tion contre les DoS. Des plugins per­met­tent de per­son­na­li­ser et de filtrer les accès aux bases de données.

Note

Depuis la version 2, MaxScale est sous licence Business Source License (BSL). Le code source est dis­po­nible gra­tui­te­ment, mais l’uti­li­sa­tion est limitée. Après trois ans, la licence devient au­to­ma­ti­que­ment une licence open source de type GPL.

Sécurité

MySQL et MariaDB proposent tous deux des fonctions de chif­fre­ment des données inactives (Data at rest). MySQL met en œuvre un chif­fre­ment des données stockées dans la base de données en utilisant le moteur de base de données InnoDB au niveau du ta­bles­pace. Le chif­fre­ment de tables de base de données in­di­vi­duelles n’est pas possible.

Note

Les ta­bles­paces sont des unités de stockage logiques des moteurs de bases de données re­la­tion­nelles comme InnoDB, qui con­tien­nent toutes les données du système de base de données. Chaque ta­bles­pace contient au moins un fichier de données : un fichier physique du système d’ex­ploi­ta­tion sous-jacent dans lequel sont stockés à la fois les tables de la base de données et les index.

Depuis sa version 10.1, MariaDB offre en revanche des fonctions de chif­fre­ment beaucoup plus so­phis­ti­quées. Celles-ci com­pren­nent le chif­fre­ment des données à la volée aux niveaux de base de données suivants :

  • Espaces de tables InnoDB
  • Tables InnoDB
  • Fichiers log InnoDB
  • Tables Aria
  • Fichiers tem­po­raires
  • Données de log binaires

Avec les clés de chif­fre­ment tour­nantes (rolling en­cryp­tion keys), MariaDB propose une fonc­tion­na­lité qui permet de définir une date d’ex­pi­ra­tion pour les clés de chif­fre­ment

Les deux SGBD prennent en charge le Key Ma­na­ge­ment Service (KMS) d’Amazon Web Services (AWS) via un plugin, ainsi que les con­nexions chiffrées par SSL.

Pour l’au­then­ti­fi­ca­tion des uti­li­sa­teurs, MySQL et MariaDB s’appuient aussi sur un système de plugins. L’équipe de dé­ve­lop­pe­ment de MySQL met à dis­po­si­tion des uti­li­sa­teurs deux plugins d’au­then­ti­fi­ca­tion : sha256_password et caching_sha2_password. Ce dernier offre, en plus de l’au­then­ti­fi­ca­tion standard via l’al­go­rithme de hachage sécurisé, une mise en cache côté serveur qui permet une réau­then­ti­fi­ca­tion plus rapide.

Jusqu’à la version 10.1.21, MariaDB utilisait le Secure Hash Algorithm avec SHA-1. Cependant, depuis la version 10.1.22, le plugin ed25519 est utilisé. Il s’agit d’un schéma de signature EdDSA qui combine SHA-2 et Curve25519.

La ca­rac­té­ris­tique unique de MariaDB dans le domaine de la sécurité des bases de données est le contrôle d’accès basé sur les rôles (Role Based Access Control, RBAC). Il est im­plé­menté na­ti­ve­ment dans le SGBD depuis la version 10.0.5, simplifie con­si­dé­ra­ble­ment la gestion des droits d’accès et réduit les erreurs lors de l’at­tri­bu­tion manuelle des droits. Cependant, MySQL a depuis rattrapé cette fonc­tion­na­lité : depuis MySQL 8.0.0 (2018), MySQL prend également en charge les rôles dans le cadre de ses fonc­tion­na­li­tés de gestion des uti­li­sa­teurs et des droits.

Éco­sys­tème

Avec son système de licence duale, Oracle adopte une stratégie open core pour MySQL. Alors que le programme principal MySQL est dis­po­nible gra­tui­te­ment en tant qu’édition com­mu­nau­taire avec code source ouvert, diverses ex­ten­sions ne sont proposées que dans le cadre de l’une des éditions com­mer­ciales. Cependant, grâce à une forte col­la­bo­ra­tion avec la com­mu­nauté open source, l’équipe de dé­ve­lop­pe­ment de MariaDB est en mesure d’im­plé­men­ter des in­ter­faces vers des al­ter­na­tives open source pour la plupart des produits pro­prié­taires de MySQL dans MariaDB.

Fonc­tion­na­lité MySQL MariaDB Server
Mo­ni­to­ring MySQL En­ter­prise Monitor (pro­prié­taire) Webyog Monyog (pro­prié­taire)
Backup MySQL En­ter­prise Backup (pro­prié­taire) MariaDB Backup (fork de Percona Xtra­Ba­ckup, GPL)
Gestion SQL MySQL Workbench (GPL/pro­prié­taire) Webyog SQLyog (GPL/pro­prié­taire)
Load balancing & routage MySQL Router (GPL/pro­prié­taire) MariaDB MaxScale (BSL)
Pare-feu MySQL En­ter­prise Firewall (pro­prié­taire) MariaDB MaxScale (BSL)

Support

Le support pro­fes­sion­nel n’est dis­po­nible que pour les clients payants, tant pour MySQL que pour MariaDB. MySQL fournit une as­sis­tance 24h/24 et 7j/7, des cor­rec­tifs, des mises à jour, des conseils tech­niques et des services de dépannage à distance via la licence payante Oracle Premier Support.

MariaDB Cor­po­ra­tion fournit un support 24/7, des mises à jour de sécurité, des conseils en matière de per­for­mance et une aide à la migration, y compris pour MySQL, dans le cadre d’un abon­ne­ment. Comme de nombreux dé­ve­lop­peurs de MySQL tra­vail­lent aujourd’hui chez MariaDB, la société met en avant une expertise par­ti­cu­liè­re­ment ap­pro­fon­die des deux systèmes.

Do­cu­men­ta­tion et com­mu­nauté

MySQL est la propriété d’Oracle Cor­po­ra­tion, qui publie sur le site Web officiel de MySQL une do­cu­men­ta­tion de tous les projets MySQL à code source ouvert très complète. En outre, la com­mu­nauté des uti­li­sa­teurs peut s’informer sur MySQL grâce à des :

L’organisme res­pon­sable de la do­cu­men­ta­tion de MariaDB est la MariaDB Foun­da­tion, qui s’appuie sur la com­mu­nauté des uti­li­sa­teurs. Si vous souhaitez par­ti­ci­per au dé­ve­lop­pe­ment et à la do­cu­men­ta­tion des serveurs MariaDB ou des ap­pli­ca­tions open source de l’éco­sys­tème MariaDB, vous pouvez trouver des in­for­ma­tions sur le site Web de la MariaDB Foun­da­tion.

Quels sont les cas d’usage de MariaDB et MySQL ?

MariaDB convient bien aux ap­pli­ca­tions pro­fes­sion­nelles internes que vous souhaitez faire fonc­tion­ner sans frais de licence. De nom­breuses en­tre­prises utilisent MariaDB au sein de pla­te­formes Web, de systèmes de gestion de contenu ou comme base de données pour le reporting et l’analyse. MariaDB se montre également efficace dans les systèmes dis­tri­bués avec de nombreux accès si­mul­ta­nés en lecture et en écriture. Si vous tra­vail­lez sur des serveurs Linux ou si vous souhaitez remplacer une ins­tal­la­tion MySQL, la comp­ta­bi­lité et l’ex­ten­si­bi­lité de MariaDB sont avan­ta­geuses.

MySQL montre ses points forts dans les systèmes de pro­duc­tion stables et de grande taille. Les domaines d’uti­li­sa­tion typiques sont les boutiques en ligne, les systèmes de ré­ser­va­tion, les pla­te­formes SaaS ou les ap­pli­ca­tions fi­nan­cières avec des exigences élevées en matière de dis­po­ni­bi­lité et de sécurité des tran­sac­tions. Si vous exécutez des ap­pli­ca­tions dans le Cloud, par exemple sur AWS, Google Cloud ou Oracle Cloud, vous avez souvent recours di­rec­te­ment à MySQL. Si vous avez besoin d’un trai­te­ment JSON très structuré ou d’un support couvert par un accord de niveau de service, MySQL est un choix judicieux.

MariaDB vs MySQL : en résumé

MySQL est un système de base de données mature et très répandu. Cependant, de nom­breuses fonc­tion­na­li­tés d’en­tre­prise, telles que la sur­veil­lance, la sau­ve­garde et la sécurité, ne sont dis­po­nibles que dans les éditions payantes. MariaDB a été créé en tant que fork de MySQL et s’est imposé comme une al­ter­na­tive open source à part entière. De nom­breuses dis­tri­bu­tions Linux l’utilisent par défaut. Des fonc­tion­na­li­tés ex­clu­sives telles que MaxScale et Co­lumnS­tore té­moig­nent d’ailleurs de son autonomie crois­sante.

Au final, le choix entre MySQL et MariaDB dépend moins du nom que du système le mieux adapté à votre cas.

Aller au menu principal