mattheoh Posted December 3, 2019 Share Posted December 3, 2019 Bonjour, Ceci concerne Prestashop en version 1.6.1.5 Suite au Black Friday et à la configuration d'un code promo avec de multiples régles paniers, la table PS_CART_RULE_COMBINATION a atteint la taille hallucinante de 2,25 millards de lignes pour 119 Go. Je n'ai donc plus accés au régles paniers via le back office, et l'accés à la base commence a ramer sévère. Le module de nettoyage de Prestashop étant sans effet , je pense à faire un TRUNCATE sur la table. Ma question : Si je fais ça , je supprime uniquement les régles paniers / cumuls ? Les clients auront toujours accés à leur voucher et pourront les utiliser (anniversaire par exemple) ? Et si vous avez une meilleur idée plus propre que le TRUNCATE , je prends Merci de votre aide. Link to comment Share on other sites More sharing options...
_tech Posted December 3, 2019 Share Posted December 3, 2019 Bonjour, Cela doit être à cause d'un module type "oleacorner" pour faire des promos. Il faut trier et supprimer sélectivement, via un script, via date, paniers validés ou non... Link to comment Share on other sites More sharing options...
mattheoh Posted December 3, 2019 Author Share Posted December 3, 2019 (edited) 2 hours ago, _tech said: Bonjour, Cela doit être à cause d'un module type "oleacorner" pour faire des promos. Il faut trier et supprimer sélectivement, via un script, via date, paniers validés ou non... Merci de votre réponse. Toutes les régles ont été faites par la fonction native de Prestashop (menu promotions > règles paniers)... mais avec ajout de restrictions / compatibilités avec d'autres régles... Du coup toutes les lignes de la table ont été multipliées de façon exponentielle. Nous n'avons pas utilisé de module tiers pour les régles paniers (uniquement le module fidèlité qui peut en générer de façon automatique). Vous me conseillez quoi au final ? Je vide la table ? ou y a un moyen de vider juste ce qui est expiré ? je suis en train de delete via le back office les régles ayant atteintes leur date d'expiration, je suis passé à 392 millions de lignes. ça a lair pas mal. je vais continuer dans cette voie ! Edited December 3, 2019 by mattheoh (see edit history) Link to comment Share on other sites More sharing options...
mattheoh Posted December 3, 2019 Author Share Posted December 3, 2019 Derniere mise à jour, j ai aussi décidé de désintaller le module birthdaypresent qui semble être un des facteurs d'augmentation de taille de la table. Link to comment Share on other sites More sharing options...
_tech Posted December 4, 2019 Share Posted December 4, 2019 16 hours ago, mattheoh said: Derniere mise à jour, j ai aussi décidé de désintaller le module birthdaypresent qui semble être un des facteurs d'augmentation de taille de la table. Cela fait quand même énormément de lignes juste de règles paniers, je suppose que le traffic est très important ? Link to comment Share on other sites More sharing options...
cyril_nel Posted December 17, 2019 Share Posted December 17, 2019 Bonjour, après l’exécution de pscleaner vous pouvez exécuter la requête : DELETE FROM `ps_cart_rule_combination` WHERE id_cart_rule_1 NOT IN ( SELECT id_cart_rule FROM `ps_cart_rule` ) OR id_cart_rule_2 NOT IN ( SELECT id_cart_rule FROM `ps_cart_rule` ) Attention la requête peut prendre plusieurs heures vu l'étendu de votre table et risque de rendre votre serveur très lent durant cette opération. Sinon vous pouvez faire un INSERT SELECT avec la condition sur une nouvelle table ( copié la structure sur la nouvelle table ps_cart_rule_combination_new ) INSERT INTO ps_cart_rule_combination_new SELECT * FROM ps_cart_rule_combination WHERE id_cart_rule_1 IN ( SELECT id_cart_rule FROM `ps_cart_rule` ) AND id_cart_rule_2 IN ( SELECT id_cart_rule FROM `ps_cart_rule` ) ; Puis renommez ps_cart_rule_combination en ps_cart_rule_combination_old et renommez ps_cart_rule_combination_new en ps_cart_rule_combination Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now