Accéder à

Écosystème MySQL

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.

Variantes de MySQL

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.

MySQL Community Edition et Enterprise Edition

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.

MariaDB

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 :

  • Introduction de nouveaux moteurs de stockage comme ColumnStore pour les analyses, le moteur S3 pour archiver les tables sur AWS S3, Aria Engine, qui est une version optimisée de MyISAM, MyRocks pour les applications à haute compression et à trafic élevé, Cassandra, SphinxSE, etc.
  • Capacité d'exécution des requêtes en parallèle
  • Pooling de threads, disponible dans la version MySQL Enterprise Edition mais pas dans la version Community Edition
  • Utilisation sans frais du routeur nommé MaxScale
  • Une solution multi-parents : Galera Cluster

Percona

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 : 

  • Amélioration de la recherche en texte intégral InnoDB, amélioration du moteur de stockage en mémoire et du mécanisme de vidage, davantage de fonctions de hachage/condensé, prise en charge du chiffrement intégré à l'espace de table InnoDB, des journaux binaires et des fichiers temporaires
  • Introduction d'un tampon en double écriture parallèle pour l'optimiser
  • Un outil XtraBackup pour la sauvegarde à chaud avec options de sauvegarde complète et incrémentielle
  • Prise en charge des moteurs de stockage MyRocks et Toku
  • Instruments de dépannage avancés comme les compteurs de performances par table, par index, par client, par utilisateur et par thread
  • Authentification PAM et journaux d'audit, disponibles dans la version MySQL Enterprise Edition mais pas dans la version Community Edition
  • Pt-toolkit, développé par Percona, un service utilitaire qui offre de nombreuses options d'administration MySQL

Quelle variante choisir ?

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.

MySQL dans le cloud

Une base de données cloud est une base de données conçue pour fonctionner 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.

Solutions de haute disponibilité ou cluster

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 :

  • Group Replication et InnoDB Cluster 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, cliquez ici.

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, cliquez ici.

  • MariaDB Galera 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, cliquez ici.

  • Cluster Tungsten de Continuent

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, cliquez ici.

  • MariaDB Xpand (anciennement ClustrixDB) 

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, cliquez ici.

  • ScaleArc

ScaleArc est un logiciel d'équilibrage de charge de base de données qui fournit une haute disponibilité. Pour en savoir plus, cliquez ici.

  • Vitess

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é. Pour en savoir plus, cliquez ici.

  • Outils qui fournissent une réplication standard pour le basculement : MHA, ProxySQL, MaxScale et Orchestrator
  • Les services basés sur le cloud tels que Google Cloud, Oracle, AWS et Azure fournissent une haute disponibilité en interne pour MySQL.

Outils MySQL

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 :

  • Basés sur IUG : MySQL Workbench, HeidiSQL, DBeaver, dbForge Studio, Navicat, SQLyog
  • Basés sur CLI : Percona Toolkit, ghost

Détails sur les outils les plus utilisés :

  • MySQL Workbench : propriété de MySQL, disponible dans les versions MySQL Community Edition et Enterprise Edition avec des fonctionnalités avancées
  • Percona Monitoring and Management (PMM) : développé par Percona et disponible gratuitement
  • HeidiSQL : développé par Ansgar Becker et disponible gratuitement
  • Percona Toolkit : développé par Percona et disponible gratuitement
  • Toad : propriété de Quest et outil payant
  • phpMyAdmin : outil Web gratuit et Open Source pour l'administration de MySQL
  • DBeaver : développé par la communauté Open Source, disponible dans les versions Community Edition et Enterprise Edition, avec des fonctionnalités avancées gérées par DBeaver
  • Navicat : propriété de CyberTech et outil payant
  • SQLyog : propriété de Webyog et outil lui aussi payant

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.

Exécuter MySQL avec des conteneurs / Kubernetes

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.

Prêt à essayer MySQL ?

Google Cloud propose une offre entièrement gérée de MySQL - Cloud SQL pour MySQL
En savoir plus sur Cloud SQL

Découvrez comment Cloud SQL pour MySQL vous aide à innover. Consulter la documentation