Blog

Comment WordPress utilise MySQL?

D’une manière générale, WordPress peut être divisé en deux segments :

  • la logique et les modèles qui génèrent l’apparence d’un site WordPress
  • la base de données MySQL qui stocke tout le contenu et alimente tout

Sommaire

Mais qu’est-ce que MySQL ?

MySQL est incroyablement puissant, mais la base de données stock qui alimente WordPress est également légère et robuste. L’une des meilleures parties d’un CMS puissant comme WordPress est qu’il gère toute la gestion de la base de données pour l’utilisateur et l’abstrait de l’utilisateur final.

Les utilisateurs de WordPress, et même les concepteurs, n’ont pas besoin de connaître intimement le fonctionnement de la base de données. Cependant, si vous souhaitez vraiment comprendre le fonctionnement de WordPress, cet article est pour vous.

Tout d’abord, parlons de ce qu’est MySQL. Plus précisément, MySQL est un système de gestion de base de données relationnelle, ou RDBMS en abrégé. Un SGBDR est un conteneur conçu pour gérer et exécuter le langage SQL (Structured Query Language).

SQL est ce qui alimente une base de données, il contrôle la structure et la forme de la base de données, et il enregistre également les insertions, les suppressions, les modifications, etc. qui sont effectuées sur cette base de données.

 

Comment fonctionne MySQL ?

Tout cela est un peu technique, cependant, prenons un peu de recul et considérons à quoi ressemblerait une base de données SQL.

SQL est organisé en tables d’informations. D’une manière générale, considérez un tableau comme une feuille de calcul dans Excel. Les lignes et les colonnes stockent les informations selon une structure prédéterminée. Cependant, contrairement à un tableur Excel, les colonnes (appelées clés ou parfois champs) d’une base de données SQL sont prédéfinies et catégorisées à l’avance.

La structure définie, ou les colonnes, des tableaux dans WordPress sont définies à l’avance – elles ne changeront pas à mesure qu’un site grandit, à moins qu’un plugin ou une mise à jour principale ne les modifie spécifiquement. Une colonne n’est pas seulement définie à l’avance, mais son type est également défini avant que des enregistrements y soient insérés.

Les types tels que les nombres (INT pour les entiers), les boîtes de mots, (TEXT ou VARCHAR pour les champs de texte) et autres (DATETIME pour la date et l’heure) sont prédéfinis dans la base de données. Si WordPress (ou un pirate informatique) tente d’ajouter des données à la base de données qui ne correspondent pas au modèle pré-spécifié, la base de données n’acceptera pas les données.

Une autre énorme fonctionnalité des bases de données SQL se trouve dans l’acronyme RDBMS : la fonctionnalité relationnelle.

Les tables SQL et même les clés spécifiques d’une table peuvent être liées à d’autres tables et clés. Cela permet aux utilisateurs de créer des bases de données étroitement liées les unes aux autres, ce qui signifie une meilleure organisation et une plus grande efficacité.

Supposons que vous souhaitiez créer une base de données de tweets à consulter ultérieurement. Vous pouvez créer un tableau contenant des informations sur des tweets spécifiques que vous avez enregistrés, tels que le contenu du tweet, son nombre de favoris, etc. Vous aimeriez également enregistrer des données sur la personne qui l’a tweeté – quel est son nom, combien d’abonnés elle a, des choses comme ça.

À l’aide de bases de données relationnelles, vous pouvez créer une table de tweet contenant toutes les données sur des tweets spécifiques, puis vous pouvez créer une table utilisateur contenant toutes les informations sur la personne qui a envoyé le tweet en question. Vous pouvez alors relier les clés dans les deux tables, afin que la base de données (et donc vous) sache quel utilisateur est associé à quel tweet.

WordPress utilise des tables relationnelles pour relier un grand nombre de données. Par exemple, la table wp_posts contient toutes les données pertinentes sur un seul article sur WordPress. La table wp_comments contient tous les commentaires que quelqu’un a laissés sur un article WordPress, mais wp_posts et wp_comments sont deux tables différentes sur la même base de données. WordPress établit une relation entre certaines clés de la table wp_comments et la table wp_posts afin que WordPress puisse déterminer quel commentaire appartient à quel article de blog.

Cette base de données et cette structure de table sont construites dans une base de données MySQL lors de la configuration initiale de WordPress. À partir de là, WordPress manipule simplement les valeurs, ou lignes, de chaque tableau pour faire fonctionner votre site.

Par exemple, lorsque vous créez un nouvel utilisateur, une ligne contenant toutes les données sur l’utilisateur (telles que le nom d’utilisateur, le mot de passe et le niveau d’autorisation) est insérée dans la table wp_users. Lorsqu’un utilisateur se connecte, WordPress accède à la base de données et vérifie les informations fournies sur l’écran de connexion par rapport à la base de données. S’ils ne correspondent pas, la connexion est rejetée.

Comment MySQL utilise la mise en cache

Ce même concept s’applique aux articles: lorsque vous rédigez et enregistrez un nouvel article, WordPress l’enregistre sous forme de ligne dans la base de données wp_posts. Il est important de noter que l’inverse est également vrai : lorsqu’une personne consultant un site Web accède à une page contenant du contenu, WordPress doit accéder à la base de données, extraire les données des tables, puis les afficher sur son écran. Pour quelques visiteurs, un serveur normal peut très bien gérer cette charge. Mais si de nombreuses personnes demandent du contenu sur le site Web, WordPress et la base de données ne pourront pas répondre à toutes les demandes et le site peut se replier. C’est pourquoi l’utilisation d’un moteur de mise en cache ou d’un plugin est si importante.

Pour redevenir un peu technique, il est important de comprendre le coût de calcul. Dans ce cas, le coût ne signifie pas dépenser de l’argent ou acheter des choses. Cela signifie évaluer plusieurs facteurs différents qui sont importants pour la vitesse de calcul, tels que le temps, la mémoire disponible et le nombre d’opérations de disque qui doivent être effectuées.

MySQL stocke toutes ces informations dans une base de données sur le disque dur de l’ordinateur sur lequel elles sont stockées. C’est un très bon système car il résiste aux pannes, dispose de beaucoup d’espace de stockage et ne détruit pas la mémoire de l’ordinateur sur lequel il s’exécute. Par rapport à une base de données comme Redis qui stocke tout dans la RAM de l’ordinateur sur lequel il est exécuté, MySQL offre une grande stabilité et élimine le souci de perte de données.

Cependant, la stabilité de MySQL a un coût : la vitesse. Le fait que WordPress accède en permanence aux mêmes clés dans une base de données doit être considéré comme « coûteux ». Il en coûte beaucoup pour accéder à la base de données, effectuer une opération de disque, ramener ces données, puis les restituer.

WordPress et MySQL avec mise en cache. Remarque : les serveurs Web, MySQL et de mise en cache sont généralement exécutés simultanément sur le même serveur. Ce diagramme les sépare à des fins d’illustration.

La mise en cache est une excellente solution à ce problème. Il prend ce HTML rendu final et le conserve pendant une courte période de temps, peut-être 30 secondes environ.

Si quelqu’un demande cette même page, le moteur de mise en cache lui servira cette page déjà rendue, sautant tout le processus d’interaction avec la base de données. C’est pourquoi il est crucial d’installer des plugins de mise en cache WordPress ou d’utiliser un service d’hébergement géré qui gère la mise en cache pour vous lors de la création de sites Web. Si une publication se retrouve sur la première page de Reddit, par exemple, votre site se pliera sous la pression de tout le nouveau trafic sans mise en cache installée.

Les onze tables MySQL de WordPress

 

WP3.8-ERD

Tables MySQL par défaut de WordPress 3.8. Courtoisie d’image Codex WordPress sous licence GPL

Maintenant que nous comprenons comment certaines de ces bases de données et tables fonctionnent réellement, parlons des onze tables spécifiques que WordPress établit et utilise par défaut :

  • wp_commentmeta – Toutes les métadonnées associées aux commentaires, telles que les clés et les valeurs, sont stockées dans cette base de données. Il ne contient pas de métadonnées telles que l’auteur et la date de soumission, mais plutôt diverses données que WordPress utilise occasionnellement. Ces données sont parfois facultatives ou non utilisées. Il se rapporte directement à wp_comments.
  • wp_comments – Ce tableau contient tous les commentaires faits sur les publications et les pages WordPress, ainsi que toutes les données associées telles que l’auteur, son adresse e-mail, la date de soumission et la publication où le commentaire a été laissé.
  • wp_links – Cette base de données est utilisée pour contenir des données de liens dans les publications WordPress, mais elle a été supprimée il y a quelques versions de WordPress. Bien qu’il soit toujours là, il est peu probable que vous voyiez celui-ci être utilisé.
  • wp_options – Toutes les options qui ont été définies dans le panneau des paramètres sont stockées dans cette base de données.
  • wp_postmeta – Comme wp_commentmeta, wp_postmeta inclut des données facultatives sur les publications. À moins qu’il n’y ait un cas d’utilisation spécifique, celui-ci ne sera probablement pas fortement utilisé.
  • wp_posts – wp_posts contient toutes les données sur les publications et leurs données associées. Cette table est très utilisée et contient tout le contenu d’un site.
  • wp_terms – Cette table stocke le contenu tel que les balises et les catégories avec lesquelles les publications sont classées.
  • wp_term_relationships – Cette table est chargée de maintenir les relations entre les publications et leurs catégories et balises associées. Une relation MySQL est également établie ici : la table est en fait connectée à la fois aux publications et aux termes via la table wp_term_taxonomy.
  • wp_term_taxonomy – Cela gère le suivi du type de taxonomies associées aux publications. Il renvoie à wp_terms ainsi qu’à wp_term_relationships et enregistre simplement les associations avec des catégories, des balises, etc.
  • wp_usermeta – Une autre méta table, wp_usermeta gère toutes les métadonnées facultatives associées à wp_users.
  • wp_users – wp_users contient toutes les données relatives aux utilisateurs de WordPress, y compris des informations telles que les noms d’utilisateur, les droits d’administrateur et les mots de passe cryptés.

MySQL peut sembler intimidant au premier abord, mais avec WordPress, les tables sont disposées d’une manière qui non seulement a beaucoup de sens, mais favorise également la rapidité et l’efficacité.

La prochaine fois que vous travaillerez sur un site WordPress, pensez à la structure de la base de données MySQL qui alimente le site. Une compréhension approfondie de la base de données du site peut garantir que votre site est sécurisé, solide et extrêmement efficace.

 

À VOIR:   Comment implémenter des types de publication personnalisés et des champs personnalisés dans WordPress?

Articles similaires

Bouton retour en haut de la page