MariaDB vs. MySQL

MySQL ou MariaDB : quel système de gestion de base de données arrive en tête ? Le projet open source MySQL peut s’appuyer sur plus de 20 ans d’histoire. MariaDB, un fork du classique de la base de données relationnelle, est apparu en 2009. Si dans ses débuts, MariaDB avait pour objectif principal de développer un logiciel pouvant remplacer immédiatement MySQL et obéissant aux standards rigoureux de la communauté open source, les deux projets poursuivent actuellement des objectifs de développement très différents. Nous vous les détaillons ici.

Le développement de MySQL et MariaDB

Un personnage clé derrière MySQL et MariaDB est le développeur de logiciels finlandais Michael « Monty » Widenius. En collaboration avec les Suédois David Axmark et Alan Larsson, Widenius a fondé la société MySQL AB qui a édité en 1995, un an seulement après le début du développement, la première version du système de gestion de base de données open source (SGBD) MySQL, marquant ainsi le début d’une réussite à portée mondiale. Ceci a abouti à la vente du projet logiciel à Sun Microsystems en 2008, pour un prix de vente de 1 milliard de dollars.

En 2009, Widenius a quitté le projet avec d’autres développeurs principaux de MySQL et s’est concentré sur le développement du fork de MySQL appelé MariaDB. La raison de la rupture était l’acquisition imminente de Sun par le très grand éditeur de logiciels Oracle, très controversé dans la communauté open source. L’acquisition a eu lieu en 2010. L’équipe de développeurs craignait qu’Oracle se retrouve en conflit d’intérêt si la société développait le logiciel open source MySQL en même temps qu’un logiciel de base de données propriétaire.

Selon Widenius, MariaDB se fonde sur les objectifs suivants :

  • garder les talents de MySQL sous un même toit 
  • promouvoir la poursuite du développement communautaire
  • garantir qu’il existe toujours une version libre de MySQL

C’est à cette fin que Widenius a établi la fondation MariaDB en 2012. Le développement du fork MySQL a été initialement effectué par la société Monty Program AB, fondée en 2009. En 2014, celle-ci a fusionné avec SkySQL pour former la MariaDB Corporation.

Remarque

Pour nommer les projets open-source qu’il a lancés, Michael « Monty » Widenius fait toujours référence à sa progéniture. My dans MySQL est le prénom de sa fille aînée. Le fork MySQL a été nommé d’après sa fille cadette Maria et le nom de son fils Max se trouve dans MaxDB et MaxScaler.

Tandis que le projet communautaire MariaDB Server est développé par la Fondation MariaDB, MariaDB Corporation se charge de la gestion des opérations commerciales de la société. Avec cette répartition, la société souhaite se différencier d’Oracle Corporation, où les deux entreprises sont sous la même administration. Cette décision a été bien accueillie par la communauté open source.

MariaDB est fortement axé sur le développement ouvert. Au premier plan, deux principes :

  • Le code source des parties de programme en cours de développement est disponible via des référentiels publics.
  • Toutes les étapes de développement sont documentées publiquement.

Le système de double licence d’Oracle, à l’inverse, est critiqué par la communauté open source. Celle-ci justifie ses critiques par les différences croissantes entre la version open source et les produits propriétaires MySQL. Le traitement non transparent des bugs du logiciel a également été critiqué dans le passé.

Tableau chronologique du développement de MySQL et de MariaDB

1995 Première version internationale du SGBD open source MySQL de MySQL AB
2008 Achat de MySQL par Sun Microsystems
2009 Lancement du fork de MySQL, MariaDB, par Monty Program AB
2010 Acquisition de Sun Microsystems par Oracle
2012 Établissement de la Fondation MariaDB
2014 Fusion de Monty Program AB avec SkySQL et renommage en MariaDB Corporation.
Conseil

Grâce au serveur d'hébergement SQL de IONOS, créez un lieu sûr pour vos projets Web.

Comparaison de MySQL et MariaDB

Les systèmes de gestion de base de données MySQL et MariaDB reposent sur le même noyau logiciel. MariaDB est un fork de MySQL 5.1, mais a évolué au fil du temps pour devenir un système de gestion de base de données autonome. Nous allons comparer les différences entre les versions actuelles à accessibilité générale MySQL 8.0.11 et Maria 10.2.8 avec les points suivants à l’esprit :

  • Structure de la base de données
  • Moteurs de base de données
  • Requêtes de base de données
  • Performances
  • Disponibilité élevée
  • Sécurité
  • Écosystème
  • Support
  • Documentation et communauté

Structure de la base de données

Le développement de MariaDB était basé sur l’ambition d’assurer une compatibilité totale avec la structure de la base de données, ainsi qu’avec les API et les fichiers de configuration de MySQL, afin de permettre aux utilisateurs d’effectuer un remplacement immédiat. Une mise à jour de MySQL vers MariaDB ou l’inverse devait être aussi simple qu’une mise à jour entre deux versions différentes de MySQL. Cet objectif a été tenu par l’équipe de développement de MariaDB jusqu’à MySQL version 7 incluse.

En principe, les deux systèmes sont basés sur la même structure de base de données. Les deux systèmes sont conformes au modèle de bases de données relationnelles. La définition des données et des tables est compatible ; on utilise des protocoles, des structures et des interfaces de programmation identiques . Tous les connecteurs MySQL peuvent également être utilisés sans modification avec MariaDB, pour connecter des applications et des outils via des interfaces de base de données normalisées telles que ODBC ou JDBC. Pour les tâches d’administration et de sauvegarde, MariaDB utilise également des utilitaires de ligne de commande éprouvés tels que mysqldump ou mysqladmin.

Pour minimiser les problèmes de compatibilité, l’équipe de développement de MariaDB fait correspondre le code source du fork une fois par mois au code MySQL. Cependant, la compatibilité binaire des deux systèmes de gestion de base de données a pris fin avec MySQL 8. À partir de la version 8.0, MySQL n’est plus compatible avec les versions antérieures, ni avec les anciennes versions de MySQL et MariaDB.

Le nouveau dictionnaire de données transactionnel de MySQL 8 constitue un exemple de l’évolution du développement des deux projets open source dans des directions différentes. Cela fait partie d’une stratégie de traitement des métadonnées, qui est fondamentalement différente des concepts précédents. Comme MariaDB ne développe actuellement pas de fonctionnalité comparable, on peut supposer que la compatibilité au niveau des fichiers de données n’existera plus à l’avenir.

Note

MariaDB s’est imposé comme un substitut parfaitement compatible de MySQL au niveau binaire. À partir de la version 8.0 de MySQL, cette compatibilité n’est néanmoins plus assurée.

Moteurs de base de données

À l’avenir, MariaDB veut se démarquer de MySQL principalement par sa flexibilité. En complément des moteurs standard pris en charge par MySQL, les utilisateurs disposent d’un nombre croissant de moteurs de base de données alternatifs pour des cas d’utilisation 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 - voir CRUD.

Le tableau suivant montre les moteurs de base de données disponibles pour MySQL 8.0.11 et MariaDB 10.3 (selon la documentation).

Moteur de base de données

MySQL 8.0.11

MariaDB 10.3.8

Description

InnoDB/ XtraDB

InnoDB est le sous-système de stockage par défaut pour MySQL (version 5.5 ou supérieure). MariaDB utilisait jusqu’à la version 10.1 le fork et extension InnoDB XtraDB comme moteur de base de données standard. À partir de la version 10.2, InnoDB est également utilisé comme sous-système de stockage dans MariaDB. InnoDB offre un accès en lecture et en écriture sécurisé pour les transactions.

MyISAM

MyISAM, le sous-système de stockage par défaut des versions plus anciennes de MySQL, fournit un accès rapide aux tables et aux index de la base de données. Néanmoins, MyISAM ne fournit pas de sécurité des transactions, contrairement à InnoDB.

MEMORY

MEMORY est un sous-système de stockage de données temporaires, alors que la définition de la table se trouve sur le disque dur, les données sont conservées dans la mémoire vive. MEMORY convient aux bases de données en mémoire avec des temps d’accès rapides et une faible latence.

CSV

Le moteur CSV stocke les données au format CSV, sous la forme de champs de données séparés par des virgules.

Archive

Le moteur de base de données est conçu pour le stockage à long terme de grandes quantités de données et offre une grande variété d’algorithmes de compression de données, permettant un stockage efficace et économe.

BLACKHOLE

BLACKHOLE est utilisé pour vérifier les instructions SQL. Au lieu de stocker des données, BLACKHOLE enregistre uniquement la syntaxe SQL.

Merge

Le moteur de base de données Merge permet de fusionner plusieurs tables MyISAM de même structure en une seule table commune.

Federated/ FederatedX

Le sous-système de stockage Federated permet à MySQL d’accéder à distance aux tables résidant sur un autre serveur. MariaDB utilise le fork FederatedX.

ColumnStore

ColumnStore est un portage de InfiniDB qui permet un traitement orienté colonnes de très grosses masses de données, de l’ordre du péta-octet.

Aria

Aria est développé depuis 2007 pour être une alternative anti-crash de MyISAM.

Cassandra

Cassandra fournit aux utilisateurs de MariaDB un moteur de base de données permettant de gérer des données structurées très volumineuses. Le logiciel suit une approche non relationnelle (NoSQL) et est conçu pour la haute disponibilité et la résilience (sans point unique de défaillance).

CONNECT

Le moteur de stockage CONNECT permet d’accéder à diverses sources de données externes telles que DBase, CSV, DOS, FMT et XML, que ce soit localement ou à distance.

Mroonga

Mroonga est un moteur de base de données orienté colonnes, qui fournit une recherche en texte intégral dans différentes langues, dont le chinois, le japonais et le coréen.

MyRocks

Le moteur de base de données MyRocks est optimisé pour un stockage de données rapide à faible temps de latence et offre une compression nettement supérieure à celle du sous-système de stockage standard InnoDB.

OQGRAPH

Avec le moteur de calcul Open Query GRAPH (OQGRAPH en abrégé), les données peuvent être traitées dans des structures de base de données hiérarchiques (arborescences) et sous forme de graphes complexes.

Sequence

Le moteur de stockage Sequence permet aux utilisateurs de générer des séquences de nombres entiers positifs ascendants et descendants, y compris la valeur initiale, la valeur finale et l’incrément.

SphinxSE

Le moteur de stockage Sphinx (SphinxSE) est une alternative à la recherche en texte intégral intégrée de MariaDB. La recherche de texte est fournie par le démon informatique Sphinx searchd.

Spider

Spider est un moteur de base de données avec fonction de sharding intégrée (partitionnement). Spider prend en charge le partitionnement de la base de données et l’architecture eXtended (XA). Cela permet de traiter différentes ressources avec la même transaction. Les tables de différentes instances de base de données peuvent être utilisées comme s’il s’agissait de tables d’une même instance.

TokuDB

Le moteur de base de données TokuDB a été conçu pour gérer de grandes masses de données, en ciblant les applications Big Data.

Requêtes de base de données

MySQL et MariaDB ne diffèrent pas à l’usage. Les deux SGBD ont pour but d’être 100 % compatibles avec le langage de base de données SQL. Les utilisateurs ont recours à des instructions SQL identiques pour créer, mettre à jour, récupérer ou supprimer des entrées de base de données.

Conseil

Pour une introduction aux instructions SQL de base, consultez notre tutoriel sur MySQL.

Performances

L’efficacité d’un système de base de données a généralement un impact direct sur les processus métier lors de leur utilisation. De nombreux utilisateurs intéressés par l’un des projets open source de Widenius se posent donc avant tout la question suivante : les performances de MariaDB sont-elles meilleures que celles de MySQL ? Des tests de performances comme DBT-3 semblent l’indiquer. Le facteur déterminant est notamment le moteur de base de données utilisé. Les deux communautés de développeurs fournissent des tests d’évaluation de configurations utilisant différents moteurs de base de données, sur les sites Web des projets en question.

Cependant, la pertinence des tests en laboratoire reste limitée pour ce qui est des conditions d’application pratique, car la performance d’une base de données dépend fortement de la mesure dans laquelle la mise en œuvre du logiciel a été adaptée au contexte applicatif. Par conséquent, les utilisateurs doivent se concentrer sur les possibilités offertes par les systèmes de gestion de base de données respectifs pour adapter le logiciel à l’application concernée.

MariaDB propose non seulement un large choix de moteurs de base de données alternatifs, mais offre également un optimiseur de requêtes SQL efficace. Depuis la version 10.0.1, MariaDB ne s’appuie plus sur les statistiques internes du moteur de base de données pour optimiser les requêtes, mais sur des statistiques sur les tables indépendantes du moteur. Celles-ci sont stockées en tant que tables traditionnelles dans la base de données et permettent de capturer et d’évaluer beaucoup plus de valeurs afin de déterminer un plan optimal pour l’exécution des instructions SQL.

Ceux que cela intéresse peuvent trouver diverses consignes pour l’optimisation des performances de la base de données dans la documentation de MariaDB. Ces rubriques donnent des conseils sur le matériel et des informations sur les configurations du système d’exploitation, les stratégies d’optimisation de la structure de données, l’optimisation des index, les stratégies de performances des requêtes et des sous-requêtes, l’optimisation des tables, ainsi que des conseils relatifs aux variables système, tampons, caches et threads. Ils traitent aussi de l’amélioration des performances et du cryptage, du hachage et de la compression.

MySQL propose également de nombreuses informations sur le réglage de la base de données. Toutefois, la plupart de ces informations ne sont accessibles qu’aux utilisateurs qui s’inscrivent avec un compte Web Oracle.

Disponibilité élevée

MySQL tout comme MariaDB conviennent tous deux aux scénarios de bases de données distribuées. Pour offrir aux utilisateurs des systèmes hautement disponibles avec une évolutivité linéaire, les deux progiciels fournissent des solutions en cluster :

MySQL Cluster est une base de données transactionnelle en temps réel, conforme aux normes ACID, offrant une disponibilité de 99,9999 % grâce à une architecture multi-maîtres sans point unique de défaillance. La base de données passe à l’échelle horizontalement sur du matériel standard et offre une fonctionnalité de partage automatique pour les charges de travail intensives en lecture et écriture. L’accès aux données se fait via des interfaces SQL ou NoSQL, selon les besoins. MySQL Cluster est proposé comme produit séparé. La version actuelle est la 7.5. Comme MySQL, la solution de cluster est également distribuée avec un système de double licence. La version communautaire est proposée sous la licence publique générale GNU.

MariaDB utilise le logiciel de cluster Galera de la société finlandaise Codership pour les bases de données distribuées. Une interface correspondante est intégrée par défaut à partir de MariaDB 10.1. Le téléchargement d’une version cluster spécifique n’est pas nécessaire. Le cluster MariaDB Galera repose également sur une architecture multi-maîtres. Pour ce qui est des moteurs de base de données, seul InnoDB (respectivement XtraDB) est disponible en mode cluster. Afin de différencier sa propre solution de cluster du produit MySQL, l’équipe de développement de MariaDB propose une extension spéciale pour le système de gestion de base de données, à savoir MaxScale, qui offre aux utilisateurs diverses fonctions supplémentaires pour le routage dans les systèmes distribués.

MaxScale est un proxy de base de données qui gère principalement l’équilibrage de la charge, mais qui peut aussi être configuré via des plugins pour non seulement relayer l’accès à la base de données, mais également le modifier selon les besoins. Le proxy anonymise ou pseudonymise les données sensibles, bloque certaines demandes en fonction de règles configurées au préalable, protège contre les dénis de service (DoS), lance automatiquement les stratégies de basculement et améliore les performances de la base de données grâce à la mise en cache et au fractionnement lecture-écriture (relais de l’accès en lecture et écriture à différentes instances de la base de données).

Contrairement au serveur MariaDB, les versions 2 et supérieures de MaxScale ne sont cependant plus sous licence GPL. À la place, MariaDB Corporation a développé la Business Source License (BSL), un modèle de licence conçu pour répondre à la fois aux attentes de la communauté open source et aux impératifs économiques du développement logiciel.

Note

Selon les développeurs, la licence Business Source (BSL) est une alternative au choix sources fermés et cœur ouvert : le code source sous BSL est disponible gratuitement et à tout moment pour les utilisateurs, mais l’utilisation du logiciel est restreinte pendant un certain temps. MaxScale peut par exemple être utilisé gratuitement pour des scénarios comportant jusqu’à trois instances de base de données. Les utilisateurs ayant besoin d’un plus grand nombre d’instances de base de données doivent acheter une licence d’utilisation correspondant à leurs besoins. À la fin de la période définie par le fournisseur, la licence Business Source est automatiquement convertie en une licence open source équivalente à la GPL. Chaque version de MaxScale est rendue disponible pour les utilisateurs sous licence GPL sans restriction au plus tard au bout de 3 ans.

Sécurité

Les fonctions de sécurité clés d’un système de gestion de base de données incluent le cryptage, l’authentification et la gestion des rôles utilisateur.

Aussi bien MySQL que MariaDB offrent des fonctions de cryptage de données inactives. MySQL chiffre les données stockées dans la base de données au niveau des tablespaces, en utilisant le moteur de base de données InnoDB. Le cryptage des tables de base de données individuelles n’est pas possible.

Note

Les tablespaces (espaces de tables) sont des unités de stockage logique des moteurs de base de données relationnelles, tels que 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 les tables et les index de la base de données sont stockés.

En revanche, MariaDB offre des fonctions de cryptage nettement plus sophistiquées depuis la version 10.1. Celles-ci incluent le cryptage des données inactives aux niveaux suivants de la base de données :

  • Tablespaces InnoDB
  • Tables InnoDB
  • Fichiers journaux InnoDB
  • Tables Aria
  • Fichiers temporaires
  • Données journal binaires

Avec les clés de cryptage par code tournant (Rolling Encryption Keys), MariaDB propose également une fonctionnalité qui vous permet de définir une date d’expiration de la clé de cryptage.

Les deux systèmes de gestion de base de données prennent en charge le Key Management Service (KMS) de Amazon Web Services (AWS) par l’intermédiaire d’un plugin.

Pour l’authentification utilisateur, MySQL et MariaDB s’appuient également sur un système de plugin. 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 Secure Hash Algorithm, une mise en cache côté serveur, qui permet une réauthentification plus rapide.

MariaDB a également utilisé l’algorithme Secure Hash Algorithm avec SHA-1 jusqu’à la version 10.1.21. Depuis la version 10.1.22, le plugin ed25519 reste le plus utilisé. ed25519 est un schéma de signature EdDSA qui combine SHA-2 avec Curve25519.

Les technologies de cryptage utilisées par MariaDB proviennent notamment de Google et de l’éditeur de logiciels allemand Eperi.

Les deux systèmes de gestion de base de données prennent en charge les connexions cryptées SSL.

La caractéristique qui différencie MariaDB dans le domaine de la sécurité des bases de données est le contrôle d’accès basé sur le rôle (Role Based Access Control, RBAC), implémenté de manière native dans le SGBD depuis la version 10.0.5, ce qui simplifie considérablement la gestion des droits d’accès et réduit les erreurs d’attribution manuelle de droits. Une fonctionnalité similaire n’est pour l’instant pas disponible dans MySQL.

Écosystème

Avec le système de double licence, Oracle poursuit une stratégie open-core avec MySQL. Tandis que le noyau MySQL est disponible gratuitement en tant qu’édition communautaire, avec code source public, plusieurs améliorations du système de gestion de base de données ne sont proposées qu’en lien avec l’une des éditions commerciales. Toutefois, grâce au réseau efficace de la communauté open source, l’équipe de développement de MariaDB est en mesure d’implémenter dans MariaDB des interfaces vers des alternatives open source pour la plupart des produits MySQL propriétaires.

Fonction MySQL Serveur MariaDB
Supervision MySQL Enterprise Monitor (propriétaire) Webyog et Monyog (propriétaire)
Sauvegarde MySQL Enterprise Backup (propriétaire) MariaDB Backup (Fork de Percona XtraBackup, GPL)
Gestion SQL MySQL Workbench (GPL / propriétaire) Webyog et SQLyog (GPL / propriétaire)
Équilibrage de charge et routage Routeur MySQL (GPL / propriétaire) MariaDB MaxScale (BSL)
Pare-feu MySQL Enterprise Firewall (propriétaire) MariaDB MaxScale (BSL)

Support

L’assistance professionnelle n’est disponible que pour les clients payants sous MySQL et MariaDB.

Les utilisateurs qui achètent une licence pour les produits propriétaires MySQL ont accès à Oracle Premier Support. Ce dernier comprend un support illimité 24 h/24 et 7 j/7, un accès à la base de connaissances, des versions de maintenance, des corrections de bugs, des correctifs et des mises à jour. En outre, Oracle Premier Support fournit un dépannage à distance et des conseils professionnels sur le réglage des performances et l’installation. En cas de besoin, les utilisateurs peuvent faire vérifier par des techniciens professionnels de MySQL leurs réplications, partitionnement, schémas, requêtes, API, extensions de serveurs, fonctions et routines personnalisées.

MariaDB Corporation vend des services de support sous forme d’une souscription MariaDB. Celle-ci inclut un support 24 h/24 et 7 j/7 avec un temps de réponse maximum de 30 minutes, un service de notification ainsi que des correctifs et des corrections de bugs. En plus de cela, sont proposés une formation payante, l’administration de base de données à distance, le conseil en performance, la haute disponibilité, la sécurité, les tests de logiciels et un service de migration. Selon MariaDB Corporation, l’équipe de support de la société fournit un support professionnel pour MariaDB aussi bien que pour MySQL.

Dans la mesure où l’équipe de développement de MySQL est presque complètement passée à MariaDB, MariaDB Corporation se vante de comprendre non seulement MariaDB, mais également le code MySQL mieux que l’équipe de support Oracle.

Documentation et communauté

MySQL appartient à Oracle Corporation, qui publie une documentation complète sur tous les projets MySQL en open source sur son site Web officiel. Par ailleurs, la communauté des utilisateurs dispose des ressources suivantes pour en savoir plus sur MySQL :

La fondation MariaDB est responsable de la documentation de MariaDB et s’appuie à cet effet sur la communauté des utilisateurs.

Les utilisateurs souhaitant participer au développement et à la documentation des serveurs MariaDB ou des applications open source de l’écosystème MariaDB trouveront des informations sur le site Web de la Fondation MariaDB.

MariaDB vs. MySQL : les principales caractéristiques

MySQL est un système de gestion de base de données qui a fait ses preuves, qui séduit les utilisateurs par la mise à disposition d’un logiciel open source, complété par de nombreuses améliorations pour le monde de l’entreprise. L’équipe de développement de MariaDB, autour de Michael Widenius, a repris le meilleur du noyau de MySQL et a ajouté de nombreuses fonctionnalités. Le tableau suivant compare les fonctionnalités centrales des deux SGBD, afin de mieux évaluer si la transition de MySQL à MariaDB vaut la peine d’être envisagée pour vous.

Caractéristiques MySQL MariaDB
Année de création 1995 2009
Version actuelle MySQL MariaDB 10.3.8
Développeur Oracle MariaDB Corporation Ab (MariaDB Enterprise)MariaDB Foundation (MariaDB Server)
Licence Système de licence dual (propriétaire et GPL 2) GPL 2
Systèmes d’exploitation Oracle LinuxRed HatCentOSOracle SolarisUbuntuDebian SUSE Enterprise LinuxMicrosoft WindowsMicrosoft Windows ServerApple macOSFreeBSDSolaris Red Hat / CentOSUbuntuDebianMint SUSE Enterprise Linux openSUSEMicrosoft Windows ServerMicrosoft WindowsManjaroFedoraArch Linux Apple macOS
Langage de programmation C et C++ C, C++, Bash et Perl
Modèle de base de données primaire Modèle de base de données relationnelle Modèle de base de données relationnelle
Modèles de base de données secondaires Modèle de base de données orienté document Base de données clé-valeur Modèle de base de données orienté document Base de données clé-valeur Base de données orientée graphe
Interface SQL Oui Oui
Interfaces NoSQL Oui Oui
Protocole Protocole MYSQL Protocole MYSQL
Réplications Réplication avec GTID (Global Transaction Identifier)- Réplication maître-maître - Réplication maître-esclave Réplication avec GTID (Global Transaction Identifier)- Réplication maître-maître - Réplication maître-esclave
Support en mémoire Oui Oui
Routage MySQL Router (GPLv2) MariaDB MaxScale (BSL)
Partitionnement (Sharding) Partitionnement horizontal, sharding avec MySQL Cluster ou MySQL Fabric Partitionnement horizontal, sharding avec Spider, CONNECT ou Galera
Gestion SQL MySQL Workbench (Microsoft Windows, macOS et Linux) SQLyog de Webyog (Microsoft Windows, Linux)
Supervision MySQL Enterprise Monitor (propriétaire) Monyog de Webyog (Microsoft Windows et Linux) (propriétaire)
Cryptage Cryptage de données inactives- Tablespaces InnoDB Cryptage de données inactives- Tablespaces InnoDB - Tables InnoDB - Fichiers journaux InnoDB- Tables Aria- Données temporaires- Binlogs
Contrôles d’accès basés sur le rôle Non Oui
Authentification Authentification via SHA-256 Authentification via plugin ed25519
Masquage de données Via ProxySQL Via MariaDB MaxScale (BSL)
Pare-feu Via MySQL Enterprise Firewall (propriétaire) Via MariaDB MaxScale (BSL)
Audit Via plugin MySQL Enterprise Audit (propriétaire) Via plugin MariaDB Audit
Analyse Non Via MariaDB ColumnStore
Routage et équilibrage de charge Via MySQL Router Via MariaDB MaxScale (BSL)
Sauvegarde Via MySQL Enterprise Backup (propriétaire) Via MariaDB Backup (Fork de Percona XtraBackup)
Expressions de table communes – Common Table Expression (CTE) Oui Oui
Fonction de fenêtrage Oui Oui
Tables temporelles avec versioning Non Oui
Réécriture de requêtes Oui Non
Types de données Chaîne (CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, BINARY, VARBINARY, JSON)Numérique (BIT, TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE, BOOLEAN)Date/Heure (DATE, DATETIME, TIMESTAMP, TIME, YEAR)Types de données gros objets (TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB) Chaîne (CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, BINARY, VARBINARY, JSON)Numérique (BIT, TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, DECIMAL, FLOAT, DOUBLE, BOOLEAN)Date/Heure (DATE, DATETIME, TIMESTAMP, TIME, YEAR)Types de données gros objets (TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB)
Types de données spatiales GEOMETRYPOINTLINESTRINGPOLYGON MULTIPOINTMULTILINESTRINGMULTIPOLYGONGEOMETRYCOLLECTION GEOMETRYPOINTLINESTRINGPOLYGONMULTIPOINTMULTILINESTRINGMULTIPOLYGONGEOMETRYCOLLECTION
Moteurs de base de données InnoDBMyISAMMEMORYCSVArchiveBLACKHOLE MergeFederated InnoDB/XtraDBMyISAMMEMORYCSVArchiveBLACKHOLE MergeFederatedXColumnStoreAriaCassandra CONNECTMroongaMyRocksOQGRAPHSequence SphinxSESpiderTokuDB
Connecteurs officiels ODBCC++CADO.NETJDBCPHPPythonPerlRuby Node.js ODBCC++CADO.NETJDBCPHPPythonPerlRubyExcelJavaScriptSwiftR

En résumé

Avec MySQL, Oracle dispose d’un système de gestion de base de données qui a fait ses preuves et qui jouit d’une popularité énorme dans le monde entier depuis plus de 20 ans. MySQL a également pu s’affirmer sous le patronage d’Oracle en tant que projet logiciel indépendant, qui est continuellement maintenu, développé et amélioré. Néanmoins, si vous souhaitez exploiter toutes les possibilités de l’écosystème MySQL, vous vous heurterez rapidement aux limites de la version gratuite Community Edition. Un certain nombre d’outils professionnels de supervision, de sauvegarde, d’équilibrage de charge, de routage et de sécurité de base de données ne sont proposés par Oracle que sous licence propriétaire.

MariaDB est issu de MySQL, mais se présente aujourd’hui comme une solution de base de données autonome pour une utilisation en production.

Remarque

Le fait que MariaDB se soit imposé comme une alternative sérieuse à MySQL s’explique notamment par le fait que depuis fin 2012, MariaDB a remplacé MySQL en tant qu’installation standard sur diverses distributions Linux - notamment Fedora, CentOS, openSUSE, ArchSUS, Debian et Red Hat Enterprise Linux. Parmi les autres applications et services Web phares qui s’appuient sur MariaDB, on peut citer Google, Mozilla, la Wikimedia Foundation, TeamSpeak et XAMPP.

MariaDB repose sur le noyau de l’équipe de développeurs de MySQL, qui à son tour peut s’appuyer sur la communauté open source pour atteindre un niveau élevé de support. Cela permet à la MariaDB Foundation de fournir des alternatives open source à de nombreuses améliorations de l’écosystème MySQL, mais elles ne sont pas toutes conformes à la norme open source définie par Bruce Perens et Eric S. Raymond.

Le développement des deux projets logiciels divergera de plus en plus à l’avenir. Si MariaDB a été initialement conçu comme un substitut open-source à MySQL, le développement futur se concentrera sur des fonctionnalités et améliorations exclusives telles que MaxScale et ColumnStore. Celles-ci ouvrent de nouvelles applications qui marquent la différence entre MariaDB et MySQL. Le facteur déterminant de la décision « MySQL ou MariaDB » ne sera donc plus la réputation de l’équipe de développement, mais la mesure dans laquelle le spectre fonctionnel du système de gestion de base de données correspondant coïncide avec le scénario d’application souhaité.