Nettoyer la base de données PrestaShop : quelles tables grossissent et comment les alléger
Nettoyer la base de données PrestaShop, c’est supprimer les anciennes données inutiles : l’historique des visites, les paniers abandonnés des visiteurs, les anciennes entrées du journal et les tables de modules désinstallés. Mesurez d’abord la taille des tables, sauvegardez la base, puis supprimez par lots les lignes antérieures à une date choisie. Ne touchez pas aux paniers liés à des commandes.
Auteur: L’équipe TellMyShop. Un guide pour les propriétaires de boutiques PrestaShop : la cause, la correction manuelle et le même travail dans une conversation avec le chat.
Dernière mise à jour: · 8 min de lecture
Pourquoi la base de données PrestaShop grossit-elle alors que le nombre de produits ne change pas ?
Parce que la boutique enregistre chaque visite. Les modules de statistiques notent qui est venu, d’où et quelles pages ont été vues. Au bout de quelques années, ces tables peuvent être plus grosses que tout le catalogue. S’y ajoutent les paniers des visiteurs qui n’ont rien acheté, les entrées du journal d’erreurs et les tables de modules désinstallés sans nettoyage.
L’équipe PrestaShop écrit dans son guide sur l’entretien de votre boutique que certaines tables peuvent devenir très grosses avec le temps, alors que leurs données ne sont plus utiles. Parmi elles, elle cite les tables des connexions, qu’on peut régulièrement débarrasser des anciennes entrées.
Une grosse base de données se manifeste en général ainsi :
- le back office se charge lentement, surtout le tableau de bord et les statistiques,
- la sauvegarde chez votre hébergeur prend de plus en plus de temps ou dépasse la limite,
- votre hébergeur vous prévient au sujet de l’espace disque ou de la limite de la base de données.
Quand c’est la boutique elle-même qui est lente, la cause est en général ailleurs. Nous décrivons un diagnostic plus large dans le guide PrestaShop lent.
Quelles tables pouvez-vous nettoyer, et lesquelles laisser tranquilles ?
Les noms ci-dessous utilisent le préfixe par défaut ps_. Votre boutique peut en avoir un autre, défini à l’installation.
| Table | Ce qu’elle contient | Peut-on la nettoyer | Remarque |
|---|---|---|---|
ps_connections, ps_connections_page, ps_connections_source | historique des visites pour les statistiques | oui, les lignes antérieures à une date choisie | les statistiques de cette période disparaissent ; les tables contiennent des adresses IP |
ps_guest | données techniques des visiteurs (navigateur, système) | avec prudence | des lignes peuvent être liées à des paniers et à des clients |
ps_cart, ps_cart_product | paniers | seulement les anciens paniers sans commande | un panier avec une commande fait partie de l’historique des ventes |
ps_log | journal des erreurs et des actions du back office | oui, les anciennes entrées | gardez les dernières semaines pour le diagnostic |
ps_pagenotfound | URL en erreur 404 | oui, les anciennes entrées | les récentes sont utiles pour les redirections |
ps_statssearch | expressions tapées dans la recherche de la boutique | oui, les anciennes entrées | c’est une connaissance précieuse des clients, pensez à l’exporter |
ps_mail | journal des e-mails envoyés | oui, les anciennes entrées | contient les adresses e-mail des clients |
| tables d’anciens modules | données de modules disparus | après avoir vérifié à qui elles appartiennent | le module a peut-être seulement été désactivé |
ps_orders, ps_customer, ps_product et similaires | données des ventes, des clients et du catalogue | non | c’est le cœur de la boutique, pas de la matière à nettoyer |
Fixez vous-même les seuils, par exemple « plus d’un an ». Ils dépendent de la durée pendant laquelle vous avez besoin des statistiques et de ce que disent vos règles de conservation des données.
Pour consulter les données, PrestaShop a le Gestionnaire SQL dans Paramètres avancés → Base de données. Le guide utilisateur de PrestaShop 8 explique que c’est un outil pour les personnes qui connaissent le SQL et qu’il bloque les requêtes qui modifient les données, comme DELETE. Le nettoyage lui-même se fait donc en dehors du back office, dans phpMyAdmin chez votre hébergeur ou avec un module de nettoyage.
Comment nettoyer la base de données sans risque, étape par étape ?
Cette liste est pour votre développeur, ou pour vous si vous travaillez dans phpMyAdmin et comprenez ce que vous faites.
- Faites une sauvegarde complète de la base de données chez votre hébergeur et vérifiez qu’elle peut être téléchargée.
- Mesurez la taille des tables. Triez-les de la plus grosse à la plus petite. Souvent, deux ou trois tables représentent l’essentiel de la taille.
- Décidez de la période à garder pour chaque table de la liste de nettoyage, par exemple 12 mois de statistiques et 30 jours de journaux.
- Supprimez les lignes antérieures à une date, par lots, au lieu de vider des tables entières. Une seule grosse suppression peut bloquer la base de données longtemps.
- Vérifiez la boutique après chaque lot : back office, statistiques, panier, une commande de test.
- Récupérez l’espace disque. Après la suppression des lignes, une table ne rétrécit souvent pas toute seule. L’optimisation des tables est en général faite par votre hébergeur ou un développeur.
- Notez ce que vous avez supprimé et quand, pour que le prochain nettoyage ne reparte pas de zéro.
PrestaHero décrit des exemples de requêtes et une approche de ces tables. Certains guides conseillent de vider entièrement les tables. C’est plus rapide, mais vous perdez tout l’historique d’un coup : supprimer par date est donc plus prudent.
Comment le chat aide-t-il à évaluer et nettoyer la base de données ?
Le plus sûr est de commencer par la seule lecture. Dans TellMyShop Pro, votre chat (Claude ou ChatGPT) lit la base de données de la boutique sans aucun interrupteur activé : il peut donc compter la taille des tables et le nombre de lignes, et repérer les restes de modules. Il ne change rien ce faisant.
Vous: La base de données fait plusieurs gigaoctets. Vérifie ce qui prend la place. Ne supprime rien.
Votre chat: Les plus grosses tables sont l’historique des visites et les pages visitées. Ensemble, elles représentent l’essentiel de la base de données. En troisième position vient le journal des erreurs, dont la plupart des entrées ont plus d’un an. J’ai aussi trouvé des tables d’un module de carrousel qui ne figure plus dans la liste des modules. L’historique des visites contient des adresses IP : je ne peux donc pas voir son contenu avec le niveau d’accès actuel aux données clients. Je propose un plan : les entrées du journal d’erreurs de plus de 90 jours, les tables du carrousel selon votre décision, et l’historique des visites de plus de 12 mois décrit comme une tâche pour un développeur. Je ne touche pas aux paniers avec commandes.
Vous: Commence par le journal. Montre-moi exactement ce que tu vas supprimer.
Votre chat: Aperçu du premier lot :
L’enregistrement exige l’interrupteur Maintenance. Le module a fait une sauvegarde de la base de données aujourd’hui, vous pouvez donc l’activer.
ancienne version : entrées du journal antérieures au 2026-07-13
nouvelle version : les entrées à partir du 2026-07-13 restent
Les chiffres et les dates de l’exemple sont inventés. Le chat donnera les vrais pour votre boutique.
Ce dont chaque étape a besoin :
- La mesure et le plan sont une lecture de la base de données, disponible dans TellMyShop Pro tout de suite.
- La suppression de lignes relève de l’interrupteur Maintenance, qui donne un accès technique complet à la base de données et aux fichiers. Il reste actif 3 heures et vous ne pouvez l’activer qu’avec une sauvegarde réussie de la base de données du jour même.
- Chaque lot est une modification séparée, avec un aperçu et votre accord. Il entre dans l’historique des modifications.
Quelques réserves honnêtes. Les tables qui contiennent des adresses IP et e-mail, comme l’historique des visites ou le journal des e-mails, sont traitées par le module comme des données clients. Par défaut, le chat ne voit pas leur contenu. Vous pouvez activer temporairement un niveau d’accès aux données clients plus élevé, avec un objectif déclaré, ou confier cette partie à un développeur. Le chat lui préparera alors une description de la tâche. Un gros nettoyage prend du temps, et vous fixez des limites de travail horaires dans le panneau du module. Avant un travail plus important, le chat vérifie s’il y tient et propose des étapes. L’optimisation des tables après la suppression et l’agrandissement de la base de données chez votre hébergeur, nous les laissons à votre hébergeur ou à un développeur.
Quand vous nettoyez la base de données, il est bon de passer aussi en revue les modules eux-mêmes. Le guide sur les modules PrestaShop inutilisés vous aidera. Vous trouverez des exemples de demandes dans les cas d’usage lignes orphelines et restes dans la base de données et un rapport sur mesure à partir des données de la boutique.
À quelle fréquence nettoyer la base de données de la boutique ?
Vérifier la taille des tables une fois par trimestre ou tous les six mois et la comparer à la mesure précédente suffit. Si une table grossit vite, demandez-vous quel module y écrit et si vous avez besoin de ce module. Parfois, désactiver des statistiques que personne n’utilise est une meilleure solution qu’un nettoyage régulier.
Vous pouvez vérifier l’état de la boutique dans TellMyShop Free. La lecture de la base de données et son nettoyage avec aperçu fonctionnent dans TellMyShop Pro ; les prix sont sur la page tarifs.
Questions et réponses
Une grosse base de données ralentit-elle une boutique PrestaShop ?
Elle peut ralentir le back office, les statistiques et les sauvegardes, plus rarement la boutique elle-même. Les tables qui grossissent le plus sont en général celles de l’historique des visites, dont la boutique n’a pas besoin pour vendre. Avant de supprimer quoi que ce soit, vérifiez quelles tables sont vraiment grosses.
Puis-je vider la table ps_connections ?
En général oui, car elle contient l’historique des visites pour les modules de statistiques. Après la suppression, vous perdez ces statistiques pour la période supprimée. Il est plus sûr de supprimer les lignes antérieures à une date choisie que de vider toute la table, et toujours avec une sauvegarde de la base de données.
Supprimer les anciens paniers est-il sans risque ?
Seulement les paniers qui ne sont pas devenus une commande. Un panier lié à une commande fait partie de l’historique des ventes et ne doit pas être touché. Ce type de nettoyage doit être préparé par un développeur qui connaît la structure de votre base de données.
La sauvegarde de la base de données faite par TellMyShop suffit-elle ?
TellMyShop Pro sauvegarde toute la base de données avant la première modification de la journée, et sans elle, vous ne pouvez pas activer l’interrupteur Maintenance. Avant un gros nettoyage, il vaut la peine d’avoir aussi votre propre sauvegarde chez votre hébergeur. Deux sauvegardes indépendantes sont un minimum raisonnable quand on supprime des données.
TellMyShop Free montrera-t-il ce qui prend de la place dans la base de données ?
Non. TellMyShop Free ne lit que des rapports tout prêts : produits, SEO, ventes, journal et liste des modules. La lecture de la base de données, y compris la taille des tables, fonctionne dans TellMyShop Pro sans activer aucun interrupteur.
PrestaShop est une marque déposée de PrestaShop SA. Claude est une marque d’Anthropic PBC. ChatGPT et OpenAI sont des marques d’OpenAI. TellMyShop n’est pas affilié à ces entreprises.