Sin impuesto Con impuesto

La base de données de PrestaShop : tables qui grossissent, index et nettoyage sans risque

Après quelques années, une boutique peut contenir des millions de lignes qui ne servent à rien. Nous vous disons lesquelles on peut nettoyer et lesquelles on ne touche pas.

Jesús Meilán
Updated: 26/09/2026 104
La base de données de PrestaShop : tables qui grossissent, index et nettoyage sans risque
Share:

La base de données de PrestaShop grossit à chaque visite, pas seulement à chaque commande. Après quelques années, on trouve souvent des tables avec des millions de lignes de statistiques que personne ne consulte et qui ralentissent les sauvegardes et certains écrans.

Les tables qui grossissent le plus

TableCe qu'elle stockePeut-on la nettoyer ?
connections, connections_page, connections_sourceVisites pour les statistiquesOui, l'ancien
guestUn enregistrement par visiteurAvec prudence (les paniers y font référence)
page_viewed, statssearchStatistiquesOui, l'ancien
logJournal du back-officeOui, l'ancien
cart, cart_productPaniers, y compris abandonnésSeulement les anciens paniers sans commande
mailJournal des e-mails envoyésOui

Nettoyage sans risque

  1. Sauvegarde complète avant toute chose.
  2. Supprimez par date et par lots, pas tout d'un coup, pour ne pas bloquer la boutique :
DELETE FROM ps_connections
 WHERE date_add < NOW() - INTERVAL 12 MONTH
 LIMIT 50000;
  1. Pour les paniers, supprimez uniquement ceux qui n'ont pas de commande :
DELETE c FROM ps_cart c
  LEFT JOIN ps_orders o ON o.id_cart = c.id_cart
 WHERE o.id_order IS NULL
   AND c.date_upd < NOW() - INTERVAL 6 MONTH;
Ne touchez pas aux tables de commandes, de factures, de clients ni de stock. Et attention aux lignes « orphelines » : supprimer à l'aveugle tout ce qui n'a pas de parent peut emporter des données qu'un module utilise à sa manière. Vérifiez d'abord quel module a créé chaque table.

Requêtes lentes

Activez le journal des requêtes lentes du serveur MySQL ou MariaDB (slow_query_log) pendant une journée de trafic normal. Les requêtes qui reviennent souvent proviennent généralement d'un module précis et se corrigent presque toujours avec un index.

Réglages du serveur

Si vous gérez le serveur, le paramètre le plus influent est innodb_buffer_pool_size : idéalement, assez grand pour que les tables utilisées au quotidien tiennent en mémoire. Mais sur des serveurs mutualisés ou avec peu de RAM, l'augmenter sans mesure peut laisser le système sans mémoire : ajustez-le à la taille réelle de vos données.

Moins de données, moins de problèmes

Désactivez les statistiques que vous n'utilisez pas (modules stats*) et programmez le nettoyage une fois par mois. Votre base de données, vos sauvegardes et vos migrations iront plus vite.

Chargement...
Consentement aux cookies
Retour en haut