Qu'est-ce que MySQL ?

MySQL est l'une des bases de données relationnelles Open Source les plus populaires au monde. Sa popularité est due à son utilisation largement répandue dans les sites Web de e-commerce, les médias sociaux et les applications, notamment Drupal, Joomla, Magento et WordPress. C'est également un élément essentiel de la pile d'applications Web Linux-Apache-MySQL-PHP/Perl/Python (LAMP), couramment utilisée, sur laquelle repose de nombreuses applications, sites Web et services populaires. Elle est classée deuxième base de données la plus populaire au monde par DB-Engines.

Découvrez comment la base de données relationnelle gérée de Google Cloud, Cloud SQL pour MySQL, peut vous aider à réduire les coûts opérationnels et gagner en efficacité.

Définition de MySQL

MySQL est un système de gestion de base de données relationnelle Open Source. Comme les autres bases de données relationnelles, MySQL stocke les données dans des tables composées de lignes et de colonnes. Les utilisateurs peuvent définir, manipuler, contrôler et interroger des données à l'aide du langage de requête structuré, plus communément appelé SQL. MySQL étant Open Source, il inclut de nombreuses fonctionnalités développées en étroite collaboration avec les utilisateurs depuis plus de 25 ans.

Le logiciel MySQL est Open Source

MySQL est Open Source, ce qui signifie qu'il est disponible sans frais selon les termes de la licence publique générale GNU. Cela signifie également que chacun est libre de modifier le code source du logiciel pour son propre usage. Cela a conduit à la création de variantes de MySQL, comme MariaDB et Percona Server for MySQL. MySQL est également disponible sous d'autres licences pour un usage commercial.

Base de données relationnelle

MySQL appartient à une catégorie de bases de données, appelée systèmes de gestion de base de données relationnelle (SGBDR). Une base de données relationnelle est un ensemble d'informations qui organise les données dans des relations prédéfinies et les stockent dans une ou plusieurs tables (ou "relations") de colonnes et de lignes, ce qui permet de les consulter et de comprendre les relations entre différentes structures de données. Les relations sont des connexions logiques entre différentes tables qui sont établies en fonction de l'interaction entre ces tables.

Historique

MySQL a été créé comme une extension du langage de programmation commercial, SQL, qui était basé sur le modèle relationnel décrit dans l'article d'Edgar F. Codd. La société suédoise MySQL AB, fondée par David Axmark, Allan Larsson et Michael Widenius, a développé et publié MySQL en 1995. Le nom "MySQL" est une combinaison du nom de la fille de Michael Wildenius, "My", et de "SQL", en référence à Structure Query Language (SQL). Sun Microsystems a fait l'acquisition de MySQL AB en 2008. MySQL est actuellement la propriété d'Oracle Corporation, ce depuis son acquisition de Sun Microsystems en 2010.

MySQL a été développé à l'origine en langages de programmation C et C++ et a connu un grand succès pour ses nombreuses versions au fil des ans en raison de sa disponibilité sur de nombreux systèmes d'exploitation Open Source et propriétaires. La dernière version de la base de données, MySQL version 8.0, a été publiée en 2018.

Duplications

Le projet MySQL a été dupliqué à plusieurs reprises au fil des années pour diverses raisons, et certaines variantes n'existent même plus. Parmi les projets dupliqués restants, les plus populaires sont MariaDB et Percona Server for MySQL. MariaDB a été dupliqué par les fondateurs de MySQL pour s'assurer que MySQL reste Open Source suite aux problèmes de commercialisation posés par l'acquisition d'Oracle. Percona Server for MySQL est une autre distribution Open Source de MySQL qui vise à maintenir une compatibilité étroite avec MySQL. En savoir plus sur les versions de MySQL et l'écosystème complet autour de MySQL.

Interface utilisateur

MySQL est accessible via une interface utilisateur graphique (IUG) ou des outils d'interface de ligne de commande. 

Interface utilisateur graphique (IUG)

Les IUG fournissent un environnement intégré composé de boutons et de widgets d'interaction, ce qui permet d'interroger et de développer des applications de manière visuelle plutôt que d'utiliser des commandes textuelles dans une interface de ligne de commande. De nombreuses interfaces utilisateur MySQL ont été développées à la fois par le projet Open Source MySQL et les intégrateurs tiers. L'une des plus populaires est MySQL Workbench, qui est également Open Source et a été développée par MySQL AB. D'autres IUG bien connues incluent phpMyAdmin, un outil d'administration populaire pour le développement d'applications Web, et HeidiSQL, un outil d'administration Open Source qui peut être utilisé pour administrer d'autres bases de données que MySQL.

Ligne de commande

MySQL est également accessible via des outils de ligne de commande. Ces outils, également appelés utilitaires MySQL, sont livrés avec la distribution MySQL et sont invoqués à l'aide de commandes textuelles, soit dans le shell MySQL, soit dans d'autres outils d'interface de ligne de commande comme Percona Toolkit.

Déployer MySQL

Un utilisateur peut déployer MySQL manuellement sur sa propre machine physique, en utilisant le code Open Source, ou en téléchargeant l'une des distributions empaquetées. MySQL est le plus souvent installé sur une seule instance ou machine, le scaling vertical étant le principal moyen d'améliorer les performances. Toutefois, MySQL peut être configuré dans une configuration répliquée avec un nœud principal et plusieurs nœuds secondaires, ces derniers ayant la capacité d'être promus au rang de nœud primaire en cas de défaillance de l'instance.

Un autre moyen de plus en plus populaire d'héberger MySQL est de passer par des fournisseurs de services cloud (CSP). Il existe plusieurs façons de déployer MySQL dans l'environnement d'un fournisseur de services cloud. La première consiste à installer MySQL directement sur une machine virtuelle et à l'auto-gérer. La seconde consiste à utiliser les offres gérées des fournisseurs de services cloud qui facilitent grandement l'administration de MySQL en prenant en charge de nombreux aspects opérationnels de la gestion de MySQL. Google Cloud propose un service géré sous la forme de Cloud SQL. Cloud SQL pour MySQL est un service de base de données entièrement géré qui vous aide à configurer, maintenir, gérer et administrer vos bases de données relationnelles MySQL sur Google Cloud, ce qui permet d'alléger le travail des administrateurs de bases de données et d'aider les organisations à innover, en offrant des services à valeur ajoutée autour de la sécurité, la haute disponibilité et l'observabilité. Découvrez comment configurer une instance Cloud SQL pour MySQL à partir de cet article sur les bonnes pratiques de configuration d'une instance Cloud SQL pour MySQL. La migration vers Cloud SQL pour MySQL depuis la base de données MySQL sur site ou depuis une autre base de données chez un fournisseur de services cloud est très simple avec de nombreux outils et options à la disposition de l'utilisateur.

Pour comprendre les avantages et les différences entre l'offre entièrement gérée de Cloud SQL pour MySQL et l'offre MySQL autogérée, consultez l'article sur les options d'hébergement MySQL.

Avantages de MySQL

MySQL est rapide, fiable, évolutif et facile à utiliser. MySQL peut s'exécuter sans difficulté sur un ordinateur de bureau ou un ordinateur portable, aux côtés de vos autres applications, de vos serveurs Web, etc. et ne nécessite que peu ou pas d'attention. Si vous choisissez de dédier une machine entièrement à MySQL, vous pouvez ajuster les paramètres pour exploiter toute la mémoire, la puissance du processeur et la capacité d'E/S disponibles. MySQL peut également augmenter sa capacité pour s'adapter à des clusters de machines interconnectés.

MySQL offre de nombreux autres avantages pour la gestion et le stockage de vos données :

Haute disponibilité

Dans MySQL, la haute disponibilité correspond à la capacité du moteur de base de données à fonctionner sans interruption pendant une période prolongée. La configuration de la haute disponibilité dans MySQL peut s'avérer assez complexe et dépend des besoins particuliers de chaque utilisateur en termes de disponibilité, ainsi que la manière dont il déploie MySQL. Pour configurer la haute disponibilité dans MySQL, les utilisateurs doivent se soucier de la réplication des données, de la détection des défaillances, des mécanismes de basculement et de restauration automatique, et de la redirection du trafic de la base de données vers l'instance secondaire après un basculement. Grâce à Cloud SQL pour MySQL, la haute disponibilité devient un processus simple et facile. Apprenez-en plus sur la haute disponibilité pour MySQL sur Google Compute Engine ou sur l'expérience de haute disponibilité entièrement gérée de Cloud SQL pour MySQL.

Sécurité

Les considérations relatives à la sécurité de MySQL peuvent couvrir un large éventail de facteurs. Certains facteurs importants portent sur la protection des données, comme la protection des données contre la corruption via des mécanismes de redondance des données, et des processus de sécurité générale tels que les mots de passe et les privilèges, le contrôle des accès et la sécurité du réseau. Apprenez-en plus sur la sécurité dans Cloud SQL pour MySQL, l'offre MySQL entièrement gérée de Google Cloud.

Sauvegarde et restauration

MySQL prend en charge la sauvegarde et la restauration des données via de multiples mécanismes, y compris des outils tiers. Pour sauvegarder et restaurer MySQL, vous pouvez utiliser l'utilitaire mysqldump, effectuer des sauvegardes incrémentielles à l'aide de journaux binaires et utiliser la réplication. Cloud SQL pour MySQL propose ses propres fonctionnalités de sauvegarde et de restauration qui permettent d'effectuer des sauvegardes automatiques ou à la demande. Vous pouvez en apprendre plus sur ces méthodes.

Flexibilité

Vous pouvez facilement ajouter, mettre à jour ou supprimer des tables, des relations, et apporter d'autres modifications aux données dès que nécessaire, sans modifier la structure globale de la base de données ni les applications existantes.

Simplicité d'utilisation

Il est facile d'exécuter des requêtes complexes à l'aide de SQL, ce qui permet aux utilisateurs novices d'interagir de manière intuitive avec la base de données.

Performance

L'optimisation des performances est un aspect essentiel de la gestion des bases de données. MySQL facilite le développement d'applications hautement performantes grâce à de nombreuses fonctionnalités et options de réglage. Pour en savoir plus sur ces fonctionnalités, consultez cet article sur les conseils d'optimisation des performances pour MySQL. Cet autre article sur le réglage des requêtes fournit également des bonnes pratiques spécifiques en matière de performances.

MySQL prend en charge les propriétés ACID (atomicité, cohérence, isolation, durabilité) qui garantissent la validité des données indépendamment des erreurs, des défaillances ou d'autres incidents potentiels.

Cas d'utilisation

En raison de sa polyvalence, MySQL peut être utilisé pour de nombreux cas d'utilisation différents. Vous trouverez ci-dessous quelques exemples que vous pouvez explorer plus en détail.

Applications Web

MySQL est un élément essentiel de nombreuses applications Web conçues de nos jours à l'aide de la pile LAMP Open Source. LAMP inclut Linux en tant que système d'exploitation, Apache en tant que serveur Web, MySQL en tant que base de données, et PHP, Python ou Perl en tant que langage de programmation. LAMP aide les développeurs à créer des applications Web dynamiques qui nécessitent la récupération d'informations à jour dans une base de données comme MySQL. Ces informations peuvent inclure des comptes d'utilisateurs, des détails sur les utilisateurs, des noms de produits, des enregistrements client, des ventes, etc. À l'aide de SQL, les utilisateurs peuvent facilement accéder aux informations stockées dans la base de données et les manipuler. Pour en savoir plus, consultez les sections LAMP et comment l'utiliser pour créer des applications Web.

Traitement des transactions en ligne

De nombreuses applications nécessitent aujourd'hui une base de données, telle que MySQL, capable de traiter rapidement un grand nombre de transactions de base de données réalisées par un grand nombre de personnes. Les bases de données OLTP telles que MySQL sont à la base de nombreuses transactions Web quotidiennes, comme les transactions financières, les réservations de voyage, l'archivage des données, et bien plus encore. Pour prendre en charge les cas d'utilisation du traitement des transactions en ligne, MySQL adhère aux principes ACID, prend en charge XML et JSON, les procédures stockées, le clustering et le partitionnement. Il offre également la possibilité de choisir parmi plusieurs moteurs de stockage, ce qui vous permet d'intégrer des données provenant de divers types de tables.

E-commerce

MySQL est une base de données populaire pour les applications d'e-commerce qui nécessitent la gestion des utilisateurs, des informations sur les consommateurs, des données financières et l'analyse des tendances pour prévenir les activités frauduleuses. Une base de données relationnelle comme MySQL permet d'organiser les informations en tables (produits, clients, commandes) et des tables supplémentaires peuvent être ajoutées selon les besoins. Certaines des plus grandes organisations mondiales comme Airbnb, Uber, Netflix, Booking.com, Spotify et eBay utilisent MySQL pour alimenter leurs applications d'e-commerce. MySQL peut également être déployé dans un déploiement hybride pour prendre pleinement en charge les cas d'utilisation d'e-commerce. MySQL peut être utilisé comme base de données relationnelle pour les données structurées et comme base de données non relationnelle pour les données non structurées telles que les informations détaillées sur les produits ou les informations marketing. 

Applications SaaS

Les applications SaaS fonctionnent généralement 24h/24, 7j/7. Elles nécessitent donc un temps d'arrêt minimal, un certain niveau de sécurité et une capacité à évoluer en fonction des besoins. MySQL s'est imposé comme une base de données populaire pour la création d'applications SaaS en raison de sa facilité de déploiement, de gestion et d'évolution. En sa qualité de système Open Source, les développeurs peuvent se lancer rapidement sans avoir à payer de frais de licence pour un logiciel propriétaire. La communauté mondiale MySQL est active et a contribué à l'élaboration de nombreux plug-ins offrant des fonctionnalités supplémentaires.

Gestion de contenu

La base de données MySQL est un choix très courant pour les systèmes de gestion de contenu (CMS) comme WordPress et Drupal. Les CMS stockent des posts, des pages, des images, des commentaires, des catégories, des tags, des champs personnalisés, des utilisateurs et d'autres paramètres dans la base de données MySQL. Étant donné que les CMS comportent souvent des milliers, voire des millions de comptes chaque jour, MySQL peut gérer de grandes tables et de multiples requêtes à la fois. À mesure que votre audience grandit, MySQL peut faire l'objet d'un scaling vertical ou horizontal pour répondre aux besoins de votre entreprise. 

Réseaux sociaux

Un aspect important des applications de médias sociaux est le besoin de connexions entre les différents datastores, comme les utilisateurs, les groupes et les commentaires. Ce type de cas d'utilisation conduit à préférer les bases de données relationnelles pour les applications de médias sociaux, MySQL étant le meilleur choix. Parmi les exemples notables, on peut citer Twitter, Pinterest et LinkedIn.

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

Google Cloud propose une base de données MySQL gérée conçue pour répondre aux besoins de votre entreprise, de la suppression de votre centre de données sur site à l'exécution d'applications SaaS, en passant par la migration de systèmes d'entreprise principaux.