Quelle est la différence entre MariaDB et MySQL ?

MySQL et MariaDB sont deux technologies de base de données open source. Vous pouvez les utiliser pour stocker des données sous forme de tableau avec des lignes et des colonnes. MySQL est la base de données open source la plus largement adoptée. Il s'agit également de la base de données relationnelle principale pour de nombreux sites Web, applications et produits commerciaux populaires. MariaDB est une version modifiée de MySQL. MariaDB a été créé par l'équipe de développement initiale de MySQL en raison de problèmes de licence et de distribution après l'acquisition de MySQL par Oracle Corporation. Depuis l'acquisition, MySQL et MariaDB ont évolué différemment. Cependant, MariaDB adopte les fichiers de définition de données et de tables de MySQL et utilise également des protocoles clients, des API clients, des ports et des sockets identiques. Ceci est destiné à permettre aux utilisateurs de MySQL de passer à MariaDB sans problème.

En savoir plus sur MySQL »

Quelles sont les similitudes entre MariaDB et MySQL ?

MySQL est un système de gestion de base de données relationnelle publié en 1995. En 2009, les développeurs ont publié MariaDB en tant que code fork de MySQL 5.1.38.

MariaDB étant issu de MySQL, les deux systèmes de gestion de bases de données relationnelles présentent de nombreuses similitudes. Par exemple, MariaDB a conservé la structure, les conventions de dénomination et les fichiers de définition de données de MySQL. De plus, il prend en charge tous les connecteurs, connexions et ports MySQL. Votre package client MySQL fonctionne inchangé avec MariaDB.

Ensuite, nous donnons d'autres similitudes.

Conformité ACID

L'atomicité, la cohérence, l'isolation et la durabilité (ACID) sont les quatre principes fondamentaux qui garantissent la fiabilité des transactions de base de données. MySQL et MariaDB respectent tous deux ces principes. En se conformant à la norme ACID, les deux bases de données préservent l'exactitude et l'intégrité des données.

Compatibilité SQL

MySQL et MariaDB sont des bases de données relationnelles qui organisent les données en tables. MariaDB et MySQL utilisent tous deux le langage SQL pour gérer et interroger des données. Vous pouvez utiliser la plupart des mêmes commandes sur ces systèmes.

En savoir plus sur SQL »

MySQL et MariaDB stockent les données sous forme de tables relationnelles avec interface SQL.

Logiciel open source

En tant que systèmes de gestion de bases de données relationnelles open source, MySQL et MariaDB sont tous deux le fruit d'une collaboration issue d'une communauté de développeurs. Leur code source est accessible au public.

La base de données MySQL possède une version entièrement open source, publiée sous la licence publique générale (GPL). Il propose également une version d'entreprise payante dotée de fonctionnalités et d'un support supplémentaires. MariaDB est entièrement open source sur GitHub.

Sécurité

MySQL et MariaDB offrent des fonctionnalités de sécurité de base similaires. Ils offrent le cryptage, des mécanismes de contrôle d'accès, l'authentification et l'autorisation des utilisateurs, ainsi que le support SSL/TLS. Ils permettent également un contrôle d'accès précis afin que vous puissiez attribuer différents niveaux d'autorisation à différents utilisateurs.

Principales différences : MariaDB comparé à MySQL

Depuis que MariaDB a quitté MySQL,celui-ci n'a cessé d'étendre ses capacités. Certains de ces changements ont entraîné des différences de fonctionnalités, de capacités et de performances de base.

Voici les principales différences entre MySQL et MariaDB.

Gestion des données JSON

MariaDB et MySQL prennent en charge la récupération et le stockage de données JSON. Toutefois, ils stockent les rapports JSON de différentes manières. MariaDB stocke les rapports JSON sous forme de chaînes, tandis que MySQL les stocke sous forme d'objets binaires.

MySQL et MariaDB ne prennent pas non plus en charge toutes les fonctions JSON. MariaDB supporte JSON_QUERY et JSON_EXISTS , contrairement à MySQL. De même, MySQL prend en charge le type de données JSON natif JSON_TABLE, contrairement à MariaDB.

Cependant, MariaDB ne prend en charge que les types de données JSON depuis la version 10.2. Le type de données JSON utilisé par MariaDB est un alias pour LONGTEXT.

Fonctionnalités

Leurs parcours de développement étant différents, MariaDB et MySQL proposent désormais des fonctionnalités légèrement différentes.

Par exemple, MySQL fournit des colonnes dynamiques qui vous permettent de définir plusieurs valeurs de données dans une seule colonne et de modifier la colonne à l'aide de fonctions. Les colonnes dynamiques permettent de masquer les données afin de protéger les informations sensibles.

En revanche, MariaDB prend en charge les colonnes invisibles dans les vues de base de données. Les colonnes invisibles ne sont pas répertoriées lorsqu'un utilisateur exécute une instruction SELECT ou demande une valeur dans une instruction INSERT.

Authentification de l'utilisateur

MySQL possède le composant validate_password, que vous pouvez utiliser pour renforcer la sécurité des mots de passe.

MariaDB ne l'a pas par défaut mais propose trois plug-ins de validation. Vous pouvez utiliser ces plug-ins de validation de mots de passe pour renforcer la protection des mots de passe. Dans la version 10.4, MariaDB a introduit le plug-in d'authentification ed25519 pour remplacer son authentification SHA-1 précédemment utilisée. Cela permet d'authentifier les utilisateurs et de stocker les mots de passe en toute sécurité. 

Chiffrement

MySQL et MariaDB chiffrent les données au repos et en transit.

MySQL permet aux administrateurs de configurer et de crypter les journaux de restauration et d'annulation, sans crypter les espaces de table temporaires ni les journaux binaires.

D'autre part, MariaDB prend en charge le cryptage des journaux binaires et le cryptage des tables temporaires. 

Pool de threads

Le regroupement de threads permet à une base de données d'optimiser ses ressources en associant de nouvelles connexions à des threads préexistants. Une capacité de pool de threads élevée est vitale pour les applications qui souhaitent évoluer et servir des milliers d'utilisateurs en parallèle.

MariaDB inclut le regroupement de fils dans son plug-in de pool de threads, qui fait partie de l'édition communautaire. MariaDB offre la possibilité de gérer plus de 200 000 connexions à la fois.

MySQL dispose d'un plug-in de pool de threads sur sa version d'entreprise. Cependant, il ne peut pas gérer autant de connexions en une seule fois que MariaDB.

Quand utiliser MariaDB vs. MySQL

MariaDB est plus évolutive et offre une vitesse de requête plus élevée que MySQL. Il convient donc parfaitement à la gestion de données de grande taille. Vous trouverez également dans MariaDB d'autres fonctionnalités que MySQL ne possède pas, comme les moteurs de stockage de séquences et les colonnes virtuelles. Vous pouvez également utiliser plusieurs moteurs dans un même tableau.

Cependant, MySQL existe depuis bien plus longtemps que MariaDB. Certaines entreprises préfèrent le support d'entreprise proposé par MySQL.

Ensuite, nous donnons quelques éléments à prendre en compte lors du choix entre les deux bases de données.

Moteurs de stockage

Dans les systèmes de gestion de base de données, les moteurs de stockage sont un composant qui permet de récupérer, de mettre à jour et de stocker des données dans la base de données. Le moteur de stockage avec lequel vous souhaitez travailler peut influencer votre décision.

Vous pouvez utiliser plusieurs moteurs de stockage sur MySQL et MariaDB, mais MySQL offre moins d'options. Certains moteurs de stockage sur MySQL incluent InnoDB, CSV, Federated, MyISAM, Merge et Federated.

MariaDB prend en charge certains moteurs de stockage que MySQL n'utilise pas, tels que XtraDB, Aria, InnoDB, MariaDB ColumnStore, Memory, Cassandra et Connect.

Licence

MariaDB et MySQL ont tous deux des versions de licence publique générale (GPL). MariaDB est entièrement sous autorisation GPL, tandis que MySQL dispose de deux licences disponibles : publique et privée.

La licence privée MySQL Enterprise Edition débloque des fonctionnalités supplémentaires, telles que le regroupement de threads, qui accélèrent la vitesse des requêtes. Les entreprises qui souhaitent distribuer leur logiciel MySQL sans distribuer le code source sous licence GPL peuvent préférer MySQL Enterprise Edition.

Compatibilité avec les bases de données Oracle

La compatibilité des bases de données Oracle est la capacité de la base de données Oracle à fonctionner avec une application créée avec des bases de données MariaDB ou MySQL.

Si votre organisation utilise déjà les produits de base de données Oracle, vous pouvez préférer MySQL. La base de données Oracle propose un mode de compatibilité spécifique pour la syntaxe SQL propre à MySQL. Cependant, MySQL ne prend pas en charge le PL/SQL, le langage orienté application développé par Oracle.

Depuis la version 10.3, MariaDB supporte le PL/SQL. MariaDB fournit également un mode de compatibilité syntaxique Oracle pour exécuter des applications de base de données Oracle sans modification.

Vitesse et performance

Pendant de nombreuses années, MySQL a surpassé MariaDB dans plusieurs cas d'utilisation. Par exemple, MySQL 8.0 pourrait traiter plus de requêtes par seconde que la version 10.3 de MariaDB. MariaDB a toutefois apporté de nombreuses améliorations ces dernières années.

À l'heure actuelle, MariaDB est plus rapide en termes d'exécution de requêtes et de tâches de réplication. Vous pouvez préférer MariaDB pour les charges de travail critiques en termes de performances.

Pouvez-vous passer de MySQL à MariaDB ?

Oui, vous pouvez passer de MySQL à MariaDB avec un minimum d'effort. MariaDB est conçu pour être rétrocompatible avec MySQL. Cela signifie que les applications et les scripts écrits pour MySQL doivent fonctionner avec MariaDB sans aucune modification significative. 

Jusqu'à MariaDB 5.5, MariaDB Server suivait le schéma de numérotation des versions de MySQL, dans le but d'assurer une compatibilité directe avec la même version majeure de MySQL. En 2012, afin de refléter le nombre croissant de fonctionnalités qui n'étaient pas disponibles dans MySQL, la numérotation des versions du serveur MariaDB a divergé. MariaDB a publié la version 10.0, tandis que MySQL a publié la version 5.6.

MariaDB Server conserve toujours un haut niveau de compatibilité avec MySQL. Les mises à niveau depuis les anciennes versions de MySQL vers les versions les plus récentes de MariaDB sont prises en charge par une mise à niveau sur place.

Le passage de MySQL à MariaDB suit une procédure d'installation standard. Vous exécutez l'outil mysql_upgrade pour mettre à jour les privilèges et les tables d'événements de la base de données MySQL avec des équivalents MariaDB.

Résumé des différences : MySQL vs. MariaDB

 

MySQL

MariaDB

JSON

MySQL stocke les rapports JSON sous forme d'objets binaires.

MariaDB stocke les rapports JSON sous forme de chaînes. Le type de données JSON de MariaDB est un alias pour LONGTEXT.

Compatibilité avec les bases de données Oracle

MySQL offre un haut niveau de compatibilité, mais ne prend pas en charge le PL/SQL.

MariaDB présente un haut niveau de compatibilité et supporte le PL/SQL depuis la version 10.3.

Vitesse et performance

MySQL est légèrement plus lent que MariaDB en termes de réplication et de requêtes.

MariaDB est légèrement plus rapide que MySQL en termes de réplication et de requêtes.

Fonctionnalités

MySQL prend en charge la fonction super lecture seule, les colonnes dynamiques et le masquage des données.

MariaDB prend en charge les colonnes invisibles et les espaces de table temporaires.

Authentification

MySQL possède le composant validate_password.

MariaDB dispose de trois plug-ins de validation de mots de passe.

Chiffrement

Les bases de données MySQL utilisent InnoDB et AES pour crypter les données au repos.

MariaDB prend en charge le cryptage temporaire des journaux et le cryptage binaire des journaux.

Moteurs de stockage

MySQL possède moins de moteurs de stockage que MariaDB.

MariaDB possède plus de moteurs de stockage que MySQL et peut utiliser plusieurs moteurs dans une seule table.

Licence

MySQL a deux versions : MySQL Enterprise Edition et une version GPL.

MariaDB est entièrement sous licence GPL.

Pool de threads

MySQL dispose d'un pool de threads dans son édition Enterprise.

MariaDB peut gérer plus de 200 000 connexions à la fois, soit plus que MySQL.

Comment AWS Support peut-il répondre à vos exigences en matière de MySQL et MariaDB ?

Amazon Relational Database Service (Amazon RDS) est un ensemble de services gérés qui facilite la configuration, l'utilisation et la mise à l'échelle des bases de données dans le cloud.

Choisissez parmi sept moteurs populaires, dont deux dédiés à MySQL et MariaDB. Amazon RDS pour Maria DB prend en charge les versions 10.3, 10.4, 10.5 et 10.6 du serveur MariaDB. Amazon RDS for MySQL prend en charge les versions 5.7 et 8.0 de MySQL Community Edition. 

Journaux de surveillance dans le cloud

Voici les avantages que vous pouvez tirer de l'utilisation d'Amazon RDS :

  • Déployer des bases de données évolutives MariaDB et MySQL en nuage en quelques minutes avec une capacité matérielle rentable et redimensionnable
  • Utiliser le code, les applications et les outils existants sans aucun changement
  • Accéder à plus de 50 mesures de CPU, de mémoire, de système de fichiers et d'E/S de disque pour une surveillance avancée de la base de données
  • Bénéficier d'une disponibilité et d'une durabilité accrues pour monter en puissance de manière élastique au-delà des contraintes de capacité d'une instance de base de données unique

Commencez à utiliser MySQL et MariaDB sur AWS en créant un compte dès aujourd'hui.

Étapes suivantes avec AWS

Commencez à créer avec MySQL
Commencez à créer avec PostgreSQL