MySQL est un système de gestion de bases de données relationnelles SQL open source développé et supporté par Oracle.

C’est la réponse courte, en une phrase, à la question « qu’est-ce que MySQL », mais décomposons cela en termes un peu plus humains.

Une base de données n’est qu’une collection structurée de données qui est organisée pour en faciliter l’utilisation et la récupération. Pour un site WordPress, ces « données » sont des choses comme le texte de vos articles de blog, des informations pour tous les utilisateurs enregistrés sur votre site, des données chargées automatiquement, des configurations de paramètres importants, etc.

MySQL n’est qu’un système populaire qui peut stocker et gérer ces données pour vous, et c’est une solution de base de données particulièrement populaire pour les sites WordPress.

Lecture suggérée : Comment réparer l’erreur « MySQL Server Has Gone Away » dans WordPress et Comment réparer l’erreur MySQL 1064.

Allons un peu plus loin dans la question maintenant.

Qu’est-ce que MySQL ? Plus de détails

MySQL a été lancé à l’origine en 1995. Depuis, il a connu quelques changements de propriétaire et de gestion, avant de se retrouver chez Oracle Corporation en 2010. Alors qu’Oracle est en charge maintenant, MySQL est toujours un logiciel open source, ce qui signifie que vous pouvez l’utiliser et le modifier librement.

MySQL logo
Logo MySQL (image source : MySql/Oracle)

Le nom vient de l’association de « My » – le nom de la fille du co-fondateur – avec SQL – l’abréviation de Structured Query Language, qui est un langage de programmation qui vous aide à accéder et gérer les données dans une base de données relationnelle.

Pour comprendre le fonctionnement de MySQL, il est important de connaître deux concepts liés :

Base de données relationnelle

Lorsqu’il s’agit de stocker des données dans une base de données, il existe différentes approches que vous pouvez utiliser.

MySQL opte pour une approche appelée base de données relationnelle.

Avec une base de données relationnelle, vos données sont divisées en plusieurs zones de stockage séparées – appelées tables – plutôt que de tout regrouper dans une seule grande unité de stockage.

Par exemple, disons que vous voulez stocker deux types d’informations :

  • Les clients – leur nom, leur adresse, leurs coordonnées, etc.
  • Les commandes – par exemple, quels produits ont été achetés, le prix, qui a passé la commande, etc.

Si vous essayiez de regrouper toutes ces données dans un seul grand pot, vous auriez quelques problèmes comme :

  • Données différentes – les données que vous devez collecter pour une commande sont différentes de celles d’un client.
  • Dupliquer les données – chaque client a un nom, et chaque commande a aussi le nom d’un client. Le traitement de ces données en double devient désordonné.
  • Pas d’organisation – comment pouvez-vous relier de façon fiable les informations relatives aux commandes aux informations sur les clients ?

Pour résoudre ces problèmes, une base de données relationnelle utilisera une table séparée pour les clients et une autre table séparée pour les commandes.

Cependant, vous voudriez probablement aussi pouvoir dire « montrez-moi toutes les commandes pour John Doe ». C’est là qu’intervient la partie relationnelle.

En utilisant ce qu’on appelle une « clé », vous pouvez lier les données de ces deux tables entre elles afin de pouvoir les manipuler et les combiner dans différentes tables si nécessaire. Il est important de noter qu’une clé n’est pas le nom du client. Au lieu de cela, vous utiliseriez quelque chose de 100% unique, comme un numéro d’identification numérique.

Si vous avez déjà consulté la base de données de votre site WordPress, vous verrez qu’il utilise ce modèle relationnel, avec toutes vos données divisées en tableaux séparés.

Par défaut, WordPress utilise 12 tables séparées, mais de nombreux plugins WordPress ajoutent aussi leurs propres tables. Par exemple, la base de données du site WordPress ci-dessous contient 44 tables distinctes !

Un exemple de tables différentes dans MySQL
Un exemple de tables différentes dans MySQL

Pour finir ce concept relationnel, rendons le spécifique à WordPress…

WordPress stocke les articles de blog dans la table wp_posts et les utilisateurs dans wp_users. Cependant, comme ces deux tables sont reliées par une clé, vous pouvez lier chaque compte utilisateur à tous les articles de blog que chaque utilisateur a écrits.

Voici à quoi cela ressemble dans la base de données.

Chaque article se voit attribuer un post_author, qui est un numéro d’identification unique (c’est la clé) :

La table wp_posts
La table wp_posts

Ensuite, si vous voulez voir quel compte utilisateur correspond à ce numéro, vous pouvez regarder l’ID dans la table wp_users :

La table wp_users
La table wp_users

La clé – le numéro d’identification – est ce qui relie le tout ensemble. Et c’est ainsi qu’ils sont « apparentés » les uns aux autres, bien que les données soient stockées dans des tableaux séparés.

Modèle client-serveur

En plus d’être un système de base de données relationnelle, MySQL utilise également quelque chose appelé le modèle client-serveur.

La partie serveur est l’endroit où vos données résident réellement. Pour accéder à ces données, vous devez toutefois en faire la demande. C’est là que le client entre en jeu.

En utilisant SQL – le langage de programmation que nous avons mentionné plus haut – le client envoie une requête au serveur de base de données pour les données dont le client a besoin.

Par exemple, si quelqu’un visite un article de blog sur votre site, votre site WordPress enverra plusieurs requêtes SQL au serveur de base de données pour obtenir toutes les informations dont il a besoin pour livrer l’article de blog au navigateur Web du visiteur :

  • nterroger la table wp_posts pour obtenir le contenu de l’article du blog
  • Interroger la table wp_users pour obtenir des informations sur la boîte auteur (en utilisant la clé que nous vous avons montrée ci-dessus)
  • Etc.

Si vous voulez voir exactement quels types de requêtes de base de données sont faites par votre site WordPress, vous pouvez utiliser un merveilleux plugin gratuit appelé Query Monitor pour voir l’interaction exacte entre votre site WordPress (le client) et le serveur de base de données :

Le plugin Query Monitor vous montre les requêtes SQL individuelles envoyées au serveur MySQL
Le plugin Query Monitor vous montre les requêtes SQL individuelles envoyées au serveur MySQL

Une autre solution premium que vous pouvez utiliser est New Relic (licence nécessaire). Si votre site WordPress ne peut pas accéder au serveur de la base de données, il déclenche le message courant d’erreur d’établissement d’une connexion à la base de données. Chez Kinsta, nous utilisons l’outil intégré Kinsta APM pour surveiller vos sites.

Kinsta utilise MariaDB, pas MySQL : Quelle est la différence ?

Chez Kinsta, nous utilisons un système de base de données appelé MariaDB, pas MySQL. Cependant, les mêmes caractéristiques que vous avez vues avec MySQL s’appliquent également à MariaDB.

En fait, MariaDB est un fork de MySQL, et le développeur principal de MariaDB est l’un des fondateurs originaux de MySQL. Un « fork » signifie simplement que les développeurs de MariaDB ont pris le code MySQL open-source original comme base et l’ont ensuite utilisé pour créer MariaDB.

Ainsi, bien qu’ils aient un nom différent, MariaDB est étroitement liée à MySQL et offre une capacité de remplacement complet (c’est-à-dire que vous pouvez passer de MySQL à MariaDB sans avoir à prendre de précautions particulières).

Cependant, bien que MariaDB offre l’interopérabilité avec MySQL, il offre également des performances améliorées dans certains domaines, ce qui correspond à notre philosophie d’utiliser l’architecture la plus performante pour propulser votre site WordPress.

Récapitulatif : Qu’est-ce que MySQL ?

MySQL est un système de gestion de base de données relationnelle open source. Pour les sites WordPress, cela signifie qu’il vous aide à stocker tous vos articles de blog, les utilisateurs, les informations de plugin, etc.

Il stocke ces informations dans des « tables » séparées et les relie avec des « clés », c’est pourquoi il est relationnel.

Lorsque votre site WordPress a besoin d’accéder à ces informations, il envoie une requête au serveur de base de données MySQL en utilisant SQL (c’est le modèle client-serveur).

Kinsta utilise MariaDB, pas MySQL. Cependant, MariaDB est un fork de MySQL de l’un des co-fondateurs de MySQL et offre une interopérabilité de remplacement sans rendez-vous, ainsi que quelques améliorations de performances. En tant que tels, tous les concepts fondamentaux de cet article s’appliquent également à MariaDB.

Si vous êtes hébergé chez Kinsta, nous offrons à la fois un accès direct à la base de données et la possibilité d’utiliser des outils de gestion de base de données comme phpMyAdmin.