logo rodolphe bertozzo

Qu’est ce que la base de données sur un site WordPress ?

qu'est ce que la base de données sur un site Wordpress

WordPress est un système de gestion de contenu utilisé par des millions de sites à travers le monde. Il semble au premier abord utile de rappeler qu’un site WordPress fonctionnel, c’est :

  • Des fichiers qui constituent le noyau ou Core du CMS.
  • Une base de données pour le traitement et la gestion des données du site.

Comment fonctionne la base de données sur un site WordPress ?

La base de données d’un site WordPress est une base de données MySQL. MySQL est un système de gestion de base de données open source utilisé par des millions de sites et d’applications web dynamiques dans le monde, dont WordPress.

mysql

La partie backend du CMS tourne sous PHP, et qui dit PHP dit base de données. Comme nous allons le voir, cette base de données est essentielle au fonctionnement de WordPress et joue un rôle crucial dans la gestion de contenu, la personnalisation du site et la gestion des utilisateurs.

La base de données d’un site WordPress stocke et gère toutes les données du site, (articles/pages, commentaires, utilisateurs, réglages,…) en utilisant un système de gestion de bases de données relationnelles appelé MySQL qui utilise des clés primaires et clés étrangères. Toutes les informations nécessaires pour générer et afficher dynamiquement le contenu du site web sont accessibles depuis cette base à travers les tables qui la composent. Vous pourrez donc interagir avec la base de données, modifier des données à travers les tables, exécuter des requêtes SQL (si vous maitrisez SQL qui le standard pour les systèmes de gestion de base de données). Les champs sont ce que sont les colonnes dans un tableau, les informations dans la table sont ordonnées.

Lorsque les visiteurs naviguent sur le site et y effectuent des opérations, WordPress lance des requêtes SQL à la base de données qui seront interprétées en utilisant le langage PHP dans le but de chercher et afficher le contenu.

Connexion entre le site et la base de donées

La connexion entre les fichiers du noyau de WordPress et la base de données se fait à travers le fichier wp-config.php. Ce fichier contient les informations de connexion à la base de données :

fichier wp config base de données
Fichier wp-config.php – Base de données

Pour comprendre :

  • DB_NAME correspond au nom de la base de données;
  • DB_USER correspond à l’utilisateur affecté à la base de données et disposant des privilèges sur cette dernière;
  • DB_PASSWORD : correspond au mot de passe de la base de données;
  • DB_CHARSET : correspond au jeu de caractère utilisé par la base de donnés lors de la création des tables.

Création de la base de données WordPress

Création automatique

Si l’installation de WordPress s’effectue par un assistant d’installation, ce qui est aujourd’hui courant sur presque tous les hébergements, vous n’avez rien à faire à ce niveau, la base de données et l’utilisateur qui y sera rattaché seront créés automatiquement.

Création manuelle

Si vous effectuez une installation manuelle de WordPress, alors vous devez créer une base de données via une interface prévue à cet effet par votre hébergement, mais aussi créer un utilisateur auquel vous lui affecterez des privilèges sur la base. Dans les réglages de votre hébergement, vous devez avoir un accès relatif à la création des bases de données qui vous permettra de créer une base et un utilisateur.

créer manuellement une base de données mysql
Créer une base de données (interface CPANEL)
gestion des utilisateurs d'une base de données mysql
Ajouter un utilisateur et l’attribuer à une base (interface CPANEL)

Quelles sont les tables qui la composent ?

Toute base de données MySQL est composée de tables qui permettent de classer les données par rubrique, et chaque table contient des champs de différents types (lettre, chiffre, date, valeur boléenne) pour préciser la nature de la donnée. Chaque table dispose d’un préfixe, par défaut, il s’agit de wp_, aujourd’hui, sur une grande majorité des sites, pour des questions de sécurité, le préfixe des tables est différent de wp_.

Les douze tables présentes sur ce shéma font partie du « Core » de WordPress. Certaines extensions que vous ajoutez sur votre site ajoutent des tables dans la base de données ou utilisent les tables présentes par défaut.

Pour savoir précisément les types de champs présents dans chacune des tables, référez vous au schéma.

Diagrammes des tables base de données WordPress.
Diagrammes des tables qui composent la base de données WordPress.

Il est possible de visualiser la base de données de son site et les données qui y sont stockées en passant par phpMyAdmin.

Hiérarchie des tables dans une base de données WordPress
Hiérarchie des tables dans une base de données WordPress

wp_users

La table wp_users stocke les informations sur les utilisateurs du site (nom d’utilisateur, mot de passe, adresse e-mail, etc).

table wp_users
Table wp_users

wp_users_meta

La table wp_users_meta stocke toutes les métadonnées qui concernent les comptes utilisateurs du site, présents dans la table wp_users.

table wp_users_meta
Table wp_users_meta

wp_posts

La table wp_posts contient les articles, pages, pièces jointes, types de publication personnalisés, ainsi que les révisions de posts.

table wp_posts
Table wp_posts

wp_postmeta

La table wp_postmeta associe à chaque article ou page des informations meta.

table wp_postmeta
Table wp_postmeta

wp_comments

La table wp_comments contient les commentaires soumis par les utilisateurs sur les articles (détails sur l’auteur, date de création, contenu du commentaire, état d’approbation, informations techniques, etc). Chaque commentaire est donc assigné à l’ID de l’article de la table wp_post qui lui correspond.

table wp_comments
Table wp_comments

wp_commentmeta

La table wp_comments_meta contient des informations meta relatives aux commentaires d’un article.

La relation entre la table commentsmeta et la table comments permet d’associer à chaque article des métadonnées qui lui sont liées.

table wp_commentmeta
Table wp_commentmeta

wp_options

La table wp_options contient tous les réglages du site.

table wp_options
Table wp_options

Cette table contient des liens vers des blogs mais n’est plus utilisée :(.

wp_terms

La table wp_terms contient les catégories ou étiquettes affectées à un article.

table wp_terms
Table wp_terms

wp_term_taxonomy

La table wp_term_taxonomy contient la taxonomie chaque terme (un terme peut être présent dans plusieurs taxonomies).

table wp_term_taxonomy
Table wp_term_taxonomy

wp_termmeta

La table wp_termmeta enregistre des données complémentaires pour chaque terme de taxonomie.

table wp_termmeta
Table wp_termmeta

wp_term_relationships

La table wp_term_relationships s’occupe de la liaison entre les articles/pages et les taxonomies (quelles sont les taxonomies qui s’appliquent à une publication).

table wp_term_relationships
Table wp_term_relationships

Interagir avec la base de données avec PHPMyAdmin

Avec PhpMyAdmin, vous pouvez exécuter des requêtes pour trier, afficher, modifier ou supprimer des données. Il vous est également possible de modifier directement certaines données plus rapidement qu’en passant par le tableau de bord de WP ou des données qui ne sont tout simplement pas modifiables avec le tableau de bord (comme le nom d’utilisateur), sans avoir besoin d’exécuter de requête.

modifier une donnée dans une base de données wordpress sans requête
Changer une valeur sans requête dans une base de données MySQL

Une gestion et une optimisation efficaces

Un certain nombre de données s’accumulent (parfois rapidement) dans la base de données, ce qui fait qu’elle s’alourdit, cela peut ralentir le site, surtout si vous faites du traitement de données. Vous devrez donc effectuer des opérations de maintenance pour nettoyer la base de données en supprimant les données périmées et inutiles. Cela est aussi bénéfique pour ne pas ralentir la navigation sur le tableau de bord de l’administration de WordPress.

Dans tous les cas, faites une sauvegarde avant toute opération sur votre base de données.

Optimiser et nettoyer la base de donnée à la main

Il vous est possible d’exécuter des requêtes SQL pour optimiser la base de données du site, et à terme maintenir de bonnes performances sur le site.

requete sql
Exécuter une requête SQL

Note : si vos préfixes de tables sont différents de wp_, ce qui est très probable pour des questions de sécurité, vous n’oublierez pas de remplacer wp_ par votre préfixe de table lorsque vous exécutez les requêtes.

Les requêtes que vous pouvez exécuter pour :

Supprimer les commentaires supprimés

DELETE FROM wp_comments WHERE comment_approved = 'trash';

Note : les éléments à la corbeille se suppriment automatiquement de celle ci au bout de 30 jours, cela dit, cette requête reste tout aussi importante surtout s’il s’agit d’un gros site et que les données supprimées s’accumulent très vite.

Supprimer les brouillons automatiques d’articles et de pages

DELETE FROM wp_posts WHERE post_status = 'auto-draft';

Supprimer les révisions d’articles et de pages

DELETE FROM wp_posts WHERE post_type = 'revision';

Optimiser les tables de la base de données

OPTIMIZE TABLE wp_commentmeta, wp_comments, wp_links, wp_options, wp_postmeta, wp_options, wp_terms, wp_term_relationships, wp_termmeta, wp_term_taxonomy, wp_usermeta, wp_users;

Note: Cette opération est utile si certains plugins ou thèmes utilisent des tables du Core de WordPress pour stocker les données. En lançant une opération d’optimisation, on nettoie la table des données périmées du plugin toujours présentes dans la table du noyau du CMS sans effacer complètement la table.

Supprimer les transients expirés

DELETE FROM wp_options WHERE option_name LIKE ('%_transient_%') AND option_value LIKE ('%expired%');

Supprimer les données de plugins désinstallés

DELETE FROM wp_options WHERE option_name LIKE '%plugin_name%';

Note : Remplacez « plugin_name » par le nom du plugin que vous avez désinstallé.

Optimiser et nettoyer la base de données à l’aide d’une extension

Plusieurs extensions présentes sur l’écosystème permettent de nettoyer et optimiser la base de données d’un site WordPress, comme Advanced Database Cleaner, WP Rocket, ou WP Optimize. Leur interface se présente assez simplement, vous avez une liste d’optimisations ou de données qu’il est possible de nettoyer lorsque vous vous rendez sur l’onglet prévu à cet effet, et il vous suffit de cliquer sur un bouton pour lancer une opération. Pensez toujours à effectuer une sauvegarde avant toute opération de ce type.

nettoyer et optimiser la base de données wordpress avec WP Optimize

Sauvegarder la base de données

Tout comme les fichiers du noyau de votre site, vous devez sauvegarder la base de données WordPress de votre site régulièrement, si vous voulez en savoir plus, vous pouvez lire un de mes précédents articles sur les sauvegardes, oui j’ai la flemme de me répéter ;).

Les erreurs courantes sur la base de données

La base de données de votre site peut rencontrer des erreurs qui empêche que votre site soit en ligne et accessible.

L’erreur de connexion à la base de données empêche WordPress de se connecter à la base de données. Il peut s’agir d’erreurs dans les informations d’identification de la base de données. La base de données peut être corrompue ou le serveur peut rencontrer un problème, ou ne plus arriver à suivre s’il y a beaucoup de trafic sur le site. Il est aussi possible qu’il s’agisse de conflits avec des thèmes ou extensions.

message d'erreur lors de la connexion à la base de données
Message d’erreur lors de la connexion à la base de données

Si vous rencontrez ce genre de problème, vérifiez que les informations d’identification de la base de données dans le fichier wp-config.php ne soient pas erronées. Il est possible que les informations soit erronées dans le cas où vous avez modifié des informations sur votre base ou si votre site a changé d’hébergement.

Si les informations sont correctes, il y a encore une dernière possibilité pour solutionner le problème. Pour cela, rendez vous dans le fichier wp-config.php, puis ajoutez la ligne de code suivante à la suite des autres constantes define.

define( 'WP_ALLOW_REPAIR', true );

Après cela, saissez l’adresse de votre site internet dans la barre d’adresse en ajoutant : /wp-admin/maint/repair.php, puis suivez les instructions affichées.

Si le problème persiste toujours, il vous reste deux solutions. Restaurer site tel qu’il était avant que ce dernier ne puisse plus se connecter à la base pour trouver d’où a survenu le problème. Ou alors, contactez votre hébergement.

Changer le préfixe des tables

Si le préfixe des tables est wp_, il y a un risque de faille de sécurité pour votre site. Il est possible que lors de l’installation de WordPress, surtout si elle a été faite manuellement, le préfixe des tables proposé par défaut n’a pas été changé. Rien ne vous empêche de le faire par la suite, pour cela, lisez cet article.

La base de données pour résumer

La base de données constitue le deuxième élément moteur d’un site WordPress. Un utilisateur a plusieurs possibilités pour agir sur cette dernière. On peut donc tout faire ou presque concernant la base de données : la créer, la gérer au mieux, l’optimiser, la sécuriser et la réparer en cas de pépin.

Vous avez apprécié cet article ?

En savoir plus sur l'auteur...

Rodolphe BERTOZZO

Etudiant freelance concepteur web