MariaDB ou MySQL : quel système de gestion de bases de données a une longueur d’avance ? Alors que MariaDB était initialement axé sur le développement d’un système de remplacement à la volée avec des standards communautaires open source élevés, les deux projets poursuivent actuellement des objectifs de développement très diffé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
  • Architecture de niveau professionnel, gérée par des experts
  • Hébergées en Europe, conformément aux normes de protection des données les plus strictes

MariaDB vs MySQL : aperçu des caractéristiques principales

MySQL est un système de gestion de base de données éprouvé, disponible sous forme de logiciel open source et pouvant être complété par de nombreuses extensions. L’équipe de développement de MariaDB, dirigée par Michael Widenius, a pris le meilleur du logiciel de base MySQL et y a ajouté de nombreuses fonctionnalités. Pour savoir qui a intérêt à passer de MySQL à MariaDB, consultez le tableau suivant, qui compare les principales caractéristiques des deux SGBD.

Caractéristiques MySQL 8.0 MariaDB 11
Date de création 1995 2009
Développeur Oracle MariaDB Corporation/Foundation
Licence GPL + propriétaire GPL v2
Systèmes d’exploitation supportés Linux, Windows, macOS Prise en charge étendue de Linux
Réplication GTID, maître/esclave GTID, Galera Cluster
Partitionnement Cluster MySQL Spider, Galera
Contrôle basé sur les rôles Depuis 8.0 Depuis 10.0.5
Authentification SHA-256 ed25519
Chiffrement InnoDB InnoDB, Aria, Logs
Pare-feu & masquage Propriétaire Via MaxScale (BSL)
Fonctions d’analyse - ColumnStore
Backup Enteprise backup MariaDB Backup (GPL)
*Moteurs de base de données InnoDB, MyISAM… + ColumnStore, MyRocks, Aria…
Interfaces SQL/NoSQL Oui/Oui Oui/Oui
Connecteurs C, Java, PHP, entre autres + Excel, Swift, R

Le développement de MySQL et MariaDB

L’homme derrière MariaDB et MySQL est le développeur de logiciels finlandais 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 Microsystems en 2008.

En 2009, Widenius a quitté le projet avec d’autres développeurs de base de MySQL pour se concentrer sur le développement de MariaDB, le fork de MySQL. L’équipe de développement craignait qu’Oracle ne se retrouve en situation de conflit d’intérêts en développant à la fois le logiciel open source MySQL et un logiciel de base de données propriétaire.

Le développement 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 Corporation. Le projet communautaire MariaDB Server est développé par la MariaDB Foundation.

MariaDB met fortement l’accent sur le développement ouvert. Deux principes sont au premier plan :

  • Le code source des parties du programme en cours de développement est disponible via des dépôts publics.
  • Toutes les étapes du développement sont documentées publiquement.
Conseil

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

MariaDB vs MySQL en comparaison

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 différences entre les versions actuelles de MariaDB et de MySQL GA (General Availability) : 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 compatibilité totale avec la structure de la base de données, les API et les fichiers de configuration de MySQL, afin de permettre aux utilisateurs d’effectuer un remplacement direct. La mise à niveau de MySQL vers MariaDB ou inversement doit être aussi facile que la mise à niveau entre deux versions de MySQL diffé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 relationnelle. 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’administration et les sauvegardes.

Note

MariaDB s’est imposé comme un remplacement 1:1 de MySQL compatible avec les binaires. Cependant, à partir de la version 8.0 de MySQL, cette compatibilité n’est plus assurée.

Moteurs de base de données

MariaDB souhaite se distinguer de MySQL principalement par sa flexibilité. En plus des moteurs standards supportés par MySQL, les utilisateurs disposent d’un nombre croissant de moteurs de base de données alternatifs pour des cas spécifiques.

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 disponibles pour MySQL 8.0.43 et MariaDB 11.8.2 (selon la documentation).

Moteur de base de données MySQL 8.0.43 MariaDB 11.8.2 Description
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 transactionnel
MEMORY Pour des tables temporaires en mémoire avec des accès rapides
CSV Sauvegarde 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 / FederatedX Accès à des tables distantes via le réseau (MariaDB : FederatedX)
ColumnStore Moteur orienté colonnes pour l’analyse de grands volumes de données
Aria Alternative MyISAM transactionnellement sécurisée pour les tables temporaires
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 transactions XA

Requêtes sur la base de données

En termes d’utilisation, MySQL et MariaDB ne sont pas différents. Les deux SGBD visent une compatibilité totale avec le langage SQL. Les utilisateurs utilisent des instructions SQL identiques pour créer, mettre à jour, récupérer ou supprimer des enregistrements de la base de données.

Conseil

Pour une introduction aux instructions SQL de base, consultez notre didacticiel MySQL pour débutants.

Performance

MariaDB offre-t-il de meilleures performances 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 communautés de développeurs mettent à disposition des tests de référence pour les configurations avec différents sur le site de chaque projet.

MariaDB ne se contente pas de proposer un grand choix de moteurs de base de données alternatifs, mais offre également un optimiseur efficace pour les requêtes SQL. Depuis la version 10.0.1, MariaDB n’utilise plus les statistiques internes de chaque moteur de base de données pour optimiser les requêtes, mais des statistiques de table indépendantes du moteur. Celles-ci sont stockées dans la base de données sous forme de tables traditionnelles et permettent de collecter et d’évaluer beaucoup plus de valeurs afin de déterminer un plan idéal pour l’exécution des instructions SQL.

Note

La documentation de MariaDB offre divers guides d’optimisation des performances des bases de données.

MySQL propose aussi de nombreuses informations sur le réglage de la base de données (compte Web Oracle requis).

Haute disponibilité

MySQL et MariaDB sont tous deux adaptés aux scénarios de bases de données distribuées. Afin d’offrir aux utilisateurs des systèmes à haute disponibilité avec une évolutivité linéaire, ces logiciels fournissent des solutions de cluster :

MySQL Cluster est une base de données en temps réel conforme à la norme ACID avec une architecture multi-maîtres sans point unique de défaillance. Elle offre jusqu’à 99,9999 % de disponibilité, une scalabilité horizontale sur du matériel standard, un auto-sharding et des interfaces SQL et NoSQL.

MariaDB Galera Cluster est directement intégré depuis la version 10.1. Il est basé sur une architecture multi-maîtres et utilise exclusivement InnoDB (ou XtraDB). Pour les bases de données distribuées, MaxScale est également utilisé. Le proxy configurable pour la répartition de charge offre des fonctions telles que le basculement, la mise en cache, le splitting lecture/écriture et des mesures de protection contre les DoS. Des plugins permettent de personnaliser 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 disponible gratuitement, mais l’utilisation est limitée. Après trois ans, la licence devient automatiquement une licence open source de type GPL.

Sécurité

MySQL et MariaDB proposent tous deux des fonctions de chiffrement des données inactives (Data at rest). MySQL met en œuvre un chiffrement des données stockées dans la base de données en utilisant le moteur de base de données InnoDB au niveau du tablespace. Le chiffrement de tables de base de données individuelles n’est pas possible.

Note

Les tablespaces sont des unités de stockage logiques des moteurs de bases de données relationnelles comme InnoDB, qui contiennent toutes les données du système de base de données. Chaque tablespace contient au moins un fichier de données : un fichier physique du système d’exploitation 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 chiffrement beaucoup plus sophistiquées. Celles-ci comprennent le chiffrement 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 temporaires
  • Données de log binaires

Avec les clés de chiffrement tournantes (rolling encryption keys), MariaDB propose une fonctionnalité qui permet de définir une date d’expiration pour les clés de chiffrement

Les deux SGBD prennent en charge le Key Management Service (KMS) d’Amazon Web Services (AWS) via un plugin, ainsi que les connexions chiffrées par SSL.

Pour l’authentification des utilisateurs, MySQL et MariaDB s’appuient aussi sur un système de plugins. L’équipe de développement de MySQL met à disposition des utilisateurs deux plugins d’authentification : sha256_password et caching_sha2_password. Ce dernier offre, en plus de l’authentification standard via l’algorithme de hachage sécurisé, une mise en cache côté serveur qui permet une réauthentification 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 caractéristique 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 implémenté nativement dans le SGBD depuis la version 10.0.5, simplifie considérablement la gestion des droits d’accès et réduit les erreurs lors de l’attribution manuelle des droits. Cependant, MySQL a depuis rattrapé cette fonctionnalité : depuis MySQL 8.0.0 (2018), MySQL prend également en charge les rôles dans le cadre de ses fonctionnalités de gestion des utilisateurs et des droits.

Écosystème

Avec son système de licence duale, Oracle adopte une stratégie open core pour MySQL. Alors que le programme principal MySQL est disponible gratuitement en tant qu’édition communautaire avec code source ouvert, diverses extensions ne sont proposées que dans le cadre de l’une des éditions commerciales. Cependant, grâce à une forte collaboration avec la communauté open source, l’équipe de développement de MariaDB est en mesure d’implémenter des interfaces vers des alternatives open source pour la plupart des produits propriétaires de MySQL dans MariaDB.

Fonctionnalité MySQL MariaDB Server
Monitoring MySQL Enterprise Monitor (propriétaire) Webyog Monyog (propriétaire)
Backup MySQL Enterprise Backup (propriétaire) MariaDB Backup (fork de Percona XtraBackup, GPL)
Gestion SQL MySQL Workbench (GPL/propriétaire) Webyog SQLyog (GPL/propriétaire)
Load balancing & routage MySQL Router (GPL/propriétaire) MariaDB MaxScale (BSL)
Pare-feu MySQL Enterprise Firewall (propriétaire) MariaDB MaxScale (BSL)

Support

Le support professionnel n’est disponible que pour les clients payants, tant pour MySQL que pour MariaDB. MySQL fournit une assistance 24h/24 et 7j/7, des correctifs, des mises à jour, des conseils techniques et des services de dépannage à distance via la licence payante Oracle Premier Support.

MariaDB Corporation fournit un support 24/7, des mises à jour de sécurité, des conseils en matière de performance et une aide à la migration, y compris pour MySQL, dans le cadre d’un abonnement. Comme de nombreux développeurs de MySQL travaillent aujourd’hui chez MariaDB, la société met en avant une expertise particulièrement approfondie des deux systèmes.

Documentation et communauté

MySQL est la propriété d’Oracle Corporation, qui publie sur le site Web officiel de MySQL une documentation de tous les projets MySQL à code source ouvert très complète. En outre, la communauté des utilisateurs peut s’informer sur MySQL grâce à des :

L’organisme responsable de la documentation de MariaDB est la MariaDB Foundation, qui s’appuie sur la communauté des utilisateurs. Si vous souhaitez participer au développement et à la documentation des serveurs MariaDB ou des applications open source de l’écosystème MariaDB, vous pouvez trouver des informations sur le site Web de la MariaDB Foundation.

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

MariaDB convient bien aux applications professionnelles internes que vous souhaitez faire fonctionner sans frais de licence. De nombreuses entreprises utilisent MariaDB au sein de plateformes 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 distribués avec de nombreux accès simultanés en lecture et en écriture. Si vous travaillez sur des serveurs Linux ou si vous souhaitez remplacer une installation MySQL, la comptabilité et l’extensibilité de MariaDB sont avantageuses.

MySQL montre ses points forts dans les systèmes de production stables et de grande taille. Les domaines d’utilisation typiques sont les boutiques en ligne, les systèmes de réservation, les plateformes SaaS ou les applications financières avec des exigences élevées en matière de disponibilité et de sécurité des transactions. Si vous exécutez des applications dans le Cloud, par exemple sur AWS, Google Cloud ou Oracle Cloud, vous avez souvent recours directement à MySQL. Si vous avez besoin d’un traitement 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 nombreuses fonctionnalités d’entreprise, telles que la surveillance, la sauvegarde et la sécurité, ne sont disponibles que dans les éditions payantes. MariaDB a été créé en tant que fork de MySQL et s’est imposé comme une alternative open source à part entière. De nombreuses distributions Linux l’utilisent par défaut. Des fonctionnalités exclusives telles que MaxScale et ColumnStore témoignent d’ailleurs de son autonomie croissante.

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

Cet article vous a-t-il été utile ?
Aller au menu principal