Selon DB-Engines, MySQL est l'une des bases de données Open Source les plus populaires au monde. Sa première version a été publiée en 1995 et son développement continu depuis lors en a fait une base de données relationnelle très populaire, même aujourd'hui. MySQL doit son succès à un écosystème composé d'un large éventail d'éditions Open Source et commerciales. MySQL est largement utilisé à la fois sur site et dans le cloud. Les principaux fournisseurs de services cloud pour MySQL sont Google Cloud, Oracle, Amazon Web Services (AWS) et Microsoft Azure.
De nombreuses variantes de MySQL sont aujourd'hui disponibles sur le marché. Elles étendent les capacités de MySQL en ajoutant des fonctionnalités d'optimisation, d'évolutivité, de clustering, de reprise après sinistre, et bien plus. Les deux principales bases de données dérivées de MySQL et actuellement actives sont MariaDB et Percona Server for MySQL.
Oracle développe et gère à la fois les éditions MySQL Community Edition et Enterprise Edition. La version Enterprise Edition inclut une assistance technique fournie par Oracle, ainsi que des fonctionnalités supplémentaires telles que la surveillance d'entreprise MySQL, l'authentification PAM, la sécurité renforcée, l'amélioration des performances et de l'évolutivité, la sauvegarde d'entreprise, l'audit d'entreprise, la gestion des clusters, le pooling de threads et plus encore.
Les fondateurs de MySQL ont ensuite créé MariaDB avec la garantie qu'elle resterait Open Source. Certaines fonctionnalités de MySQL ont en fait été publiées plus tôt dans MariaDB que dans MySQL, comme la prise en charge de JSON, la réplication multi-source et la réplication par threads parallèles. Les principaux avantages de MariaDB par rapport à MySQL sont les suivants :
L'entreprise Percona développe et gère Percona Server for MySQL. Au fil des années, Percona a réalisé un travail considérable sur MySQL pour l'optimiser et introduire de nouvelles fonctionnalités. Les principaux avantages de Percona par rapport à MySQL sont les suivants :
Les besoins d'une application dictent le choix de la base de données, car les différentes bases de données ont des caractéristiques uniques visant des cas d'utilisation particuliers. Par exemple, si votre application a besoin d'analyses, vous pouvez utiliser soit clickhouse dans Percona, soit columnstore dans MariaDB, mais cette option n'est pas disponible dans MySQL. De même, si vous souhaitez utiliser la fonctionnalité de pool de threads, qui n'est pas disponible dans la version Community de MySQL, vous devez choisir la version MySQL Enterprise ou la fonctionnalité de pool de threads Open Source dans Percona et MariaDB.
Une base de données cloud est une base de données conçue pour s'exécuter dans un environnement cloud public ou hybride afin d'aider à organiser, stocker et gérer les données au sein d'une organisation. Les bases de données cloud peuvent être proposées en tant que Database as a Service (DBaaS) gérée, ou déployées sur une machine virtuelle (VM) basée sur le cloud et auto-gérée par une équipe informatique interne. Voici les principaux fournisseurs de cloud gérés pour MySQL :
Google Cloud
Google Cloud propose à la fois une version de MySQL hébergée sur une machine virtuelle, que l'utilisateur doit gérer lui-même, et Cloud SQL, qui est une offre entièrement gérée.
Amazon Web Services (AWS)
Amazon Web Services (AWS) propose une option d'hébergement sur VM pour MySQL et une solution entièrement gérée sous la forme de RDS. AWS propose également Aurora, une solution MySQL compatible qui offre des fonctionnalités supplémentaires.
Azure SQL Database
Azure propose deux modèles de déploiement pour MySQL similaires à ceux des autres fournisseurs cloud : une option de machine virtuelle sous la forme de MySQL sur VM Azure, et la version entièrement gérée sous la forme d'Azure Database pour MySQL.
Oracle Cloud
Oracle offre la possibilité d'héberger MySQL sur ses machines virtuelles. Il a également mis au point une nouvelle offre entièrement gérée appelée MySQL HeatWave Database Service.
Digital Ocean
Digital Ocean offre également la possibilité d'héberger MySQL sur ses machines virtuelles. Il propose également une option d'hébergement entièrement gérée pour MySQL.
De nombreuses entreprises ont travaillé à l'extension de MySQL et ont créé des produits qui assurent le basculement et la haute disponibilité de la base de données MySQL. Certains sont des outils directement utilisés avec MySQL, et d'autres sont des modifications du code source de MySQL qui ont donné lieu à la création de produits séparés, offrant une haute disponibilité ou des clusters multi-parents. Voici quelques-unes des solutions courantes de haute disponibilité et d'évolutivité de MySQL :
Un cluster InnoDB est composé d'au moins trois instances MySQL Server et fournit des fonctionnalités de haute disponibilité et de scaling. Les clusters InnoDB se composent de MySQL Shell, MySQL Router, et de serveurs MySQL avec Group Replication. Pour en savoir plus, consultez le chapitre 23 : Cluster InnoDB.
Percona XtraDB Cluster est une solution de clustering synchrone qui fournit des fonctionnalités de haute disponibilité, de réplication parallèle et d'évolutivité. Percona XtraDB Cluster inclut l'outil d'administration ProxySQL qui configure automatiquement les nœuds du cluster XtraDB Percona à l'aide de ProxySQL. Pour en savoir plus, consultez Percona XtraDB Cluster.
MariaDB Galera Cluster est un cluster multi-principal virtuellement synchrone pour MariaDB qui fournit des fonctionnalités de haute disponibilité et d'évolutivité. Il repose sur les serveurs MariaDB et la bibliothèque de fournisseurs wsrep de Galera. Il offre des fonctionnalités telles que la jointure automatique des nœuds, une vraie réplication parallèle, la topologie multi-principale, et plus encore. Pour en savoir plus, consultez le cluster MariaDB Galera.
Le cluster Tungsten fournit un seul package simple, muni de tous les composants de base nécessaires pour déployer et gérer la base de données MySQL en tant que clusters. Il fournit une solution de clustering géographique. Il se compose de Tungsten Manager, Replicator, Connector, Data nodes et Dashboard. Pour en savoir plus, consultez Cluster Tungsten de Continuent.
MariaDB Xpand fournit un SQL distribué conforme aux normes ACID, une haute disponibilité, une tolérance aux pannes, un scaling en écriture, et un scaling horizontal pour les charges de travail transactionnelles. MariaDB Xpand est un composant de MariaDB Enterprise. Il se compose d'un ou plusieurs nœuds MaxScale et de trois nœuds Xpand ou plus. Pour en savoir plus, consultez MariaDB Xpand.
ScaleArc est un logiciel d'équilibrage de charge de base de données qui fournit une haute disponibilité. Vous trouverez plus d'informations sur ScaleArc.
Vitess possède des fonctionnalités de segmentation intégrées qui vous permettent d'accroître votre base de données sans ajouter de logique de segmentation dans votre application afin de fournir une haute disponibilité et une grande évolutivité. Vous trouverez plus d'informations sur Vitess.
Les outils MySQL sont présents sous toutes les formes : Web, interface de ligne de commande (CLI) et interface utilisateur graphique (IUG). MySQL dispose d'une large gamme d'outils Open Source et commerciaux pour la conception, le développement, l'administration, la sauvegarde, la surveillance des performances et les alertes des bases de données.
Voici quelques outils de surveillance MySQL avec IUG courants :
Percona Monitoring and Management, Prometheus, MySQL Enterprise Monitor, New Relic, SolarWinds, HeidiSQL, AppDynamics, Datadog et SQLyog.
Voici quelques outils d'administration, de développement ou d'utilitaire courants :
Détails sur les outils les plus utilisés :
D'autres outils de surveillance majeurs incluant des graphiques pour analyser les taux d'erreur, le trafic et les modèles de requête avec des mécanismes d'alerte peuvent être utilisés, comme New Relic, Zabbix, Cortex, Prometheus et Grafana.
L'exécution d'une base de données sur un cluster Kubernetes à l'aide d'images de conteneurs Docker devient de nos jours de plus en plus populaire. Cela permet de gérer la base de données à l'aide du code, d'effectuer des déploiements faciles et rapides, de protéger les données, d'isoler l'application et d'utiliser des ressources partagées. En fait, tous les avantages de Docker peuvent être exploités par le système de base de données. Certains opérateurs Kubernetes sont déjà disponibles pour MySQL. Toutefois, de nombreux points peuvent être améliorés dans ce domaine.
Découvrez comment Cloud SQL pour MySQL vous aide à innover. Consulter la documentation
Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.