Optimiser Prestashop suite à des lenteurs

Maintenance serveur. Homme réalisant des réglages et des optimisations sur sa base de données Prestashop.

Après avoir activé le profiling interne de Prestashop, afin de comprendre pourquoi mon client se plaignait dune page « Commande > Paniers » trop lente dans son backoffice, et constaté des temps très long pour les requêtes, je me suis rendu compte que la table « guests » (clients non enregistrés) étaient énormes et qu’elle était la principale raisons des lenteurs. 🤦‍♀️

D’autres tables utilisées essentiellement pour les statistiques backoffice de Prestashop, et que mon client ne consultent jamais, sont elles aussi très lourdes.

Voici donc les requêtes que j’ai effectué pour réduire la taille de la base de données.💻

Premièrement j’ai vidé les logs de prestashop :

TRUNCATE ps_log;

Ensuite j’ai supprimé les anciennes données de connexions, utilisés uniquement pour les stats. Je me suis limitée aux données ne concernant pas l’année en cours, et donc de , environ, plus de 3 mois. (A vous d’adapter la date en fonction de votre besoin)

DELETE c, cs
FROM ps_connections c
LEFT JOIN ps_connections_source cs ON (c.id_connections = cs.id_connections)
WHERE c.date_add < '2025-01-01 00:00:00';
OPTIMIZE TABLE ps_connections, ps_connections_source;

La requête va prendre un peu de temps à s’exécuter, pas de panique, allez prendre un petit café 🙂

Ensuite, une fois les connexions effacées, j’ai supprimé les utilisateurs invités’, n’ayant jamais créé de compte client.

DELETE g
FROM ps_guest g
LEFT JOIN ps_customer c ON (g.id_customer = c.id_customer)
WHERE c.id_customer IS NULL;
OPTIMIZE TABLE ps_guest;

Enfin, il est aussi possible de vider les tables de statistiques, sur les pages vues, les pages non trouvées et les statistiques de recherche.
A vous de voir .

TRUNCATE ps_page_viewed; - Pages displayed
TRUNCATE ps_pagenotfound; - Log of pages not found
TRUNCATE ps_statssearch; - Search engine statistics

Une fois ces requêtes exécutées , de nombreux problèmes de lenteurs , que ce soit en front ou en back, devraient être résolus. 🌞

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *