Jump to content

problème avec table ps_cart_rule_combination énorme !


Recommended Posts

Bonjour,

 

voici j'ai un problème de surcharge avec prestashop 1.606

 

voici la réponse de mon hébergeur:

 

 

En regardant votre base de données il y a pour moi un problème :

 

Lorsque votre site accueille un nombre important de visiteurs, au fil du temps, les tables ps_connections, ps_connections_sources, ps_connections_page & ps_guest sont très rapidement surchargées et ce problème est souvent à l'origine de ralentissement d'une boutique Prestashop et d'un temps de réponse excessif. Il est conseillé de les purger régulièrement.

Le deuxième soucis est la taille énorme de "ps_cart_rule_combination". La il faudrait contacter prestashop pour savoir quoi faire. En effet les requêtes sur cette table sont lentes et ralentissent le site et le serveur.

 

Pouvez vous me dire a quoi sert cette  table ps_cart_rule_combination svp ?

est ce que je peux la vider ?

Et pour ps_connections, ps_connections_sources, ps_connections_page & ps_guest

est il aussi possible de les vider en passant par phpadmin ?

 

merci de vos réponse

cordialement

Link to comment
Share on other sites

La table cart_rule_combination doit se remplir lorsque vous créez une règle panier et que dans l'onglet "conditions" vous cochez "compatibilité avec les autres règles paniers"

A vous de voir si ces règles sont nécessaires ?

 

Pour les autres oui, vous pouvez les vider

Edited by ChDUP (see edit history)
Link to comment
Share on other sites

Bonjour ChDUP,

merci pour votre réponse o)

 

j'ai vidé les tables, sauf cart_rule_combination

C'est difficile dans mes Règles Promotions/Regles de  paniers, j'ai des bons qui sont créer automatiquement pour les anniversaires,

Fidélités, commentaires etc.. et il y a certains bon c'est coché  "compatibilité avec les autres règles paniers" 

et d'autres pas !!

Je ne comprends pas bien quel fonction a cette  "compatibilité avec les autres règles paniers" 

Link to comment
Share on other sites

C'est simple, si vous avez un produit qui répond à 2 regles paniers, est ce que vous souhaitez que les 2 regles lui soient applicables ?

 

Par exemple, vous faites une promo sur toute une catégorie et vous avez un code promo pour un anniversaire.

Est-ce que vous souhaitez que le client puisse appliquer à la fois le code pour la promo de la catégorie et en plus le code de son anniversaire. ?

C'est à cela que sert cette fonction

Link to comment
Share on other sites

Ok

 

Donc j'ai que les bons pour avis commentaire qui utilise cette règle,

Pour les anniversaires, c'est un modules a part que j'utilise normalement il applique pas sur produits déjà soldés.

Pour les récompenses fidélité/parrainage ils sont coché sur "Sélection de produits"

 

Donc si je comprend bien si je vide cette table, cela ne va pas me poser de problèmes sur le fonctionnement de PS ?

 

c'est a dire produits, déclinaisons, quantités etc.... 

 

Vu la réponse de l'hébergeur "En effet les requêtes sur cette table sont lentes et ralentissent le site et le serveur"

Je suis bien tenté de vider cette table o)

Link to comment
Share on other sites

  • 2 years later...

I found this old topic, but this is still not solved. 

 

We have a 3 year old prestashop and now the ps_cart_rule_combination has more than 6million lines in it. In our Cart Rules tab in the BO we only have 900 lines. 

 

Is there a better way to solve the compatibility issues with other cart rules and not maintain a 2GIG ps_cart_rule_combination table?

Thanks for your help!

Ryan

Link to comment
Share on other sites

  • 1 month later...
  • 2 years later...

bonjour,

je crois que je bats tous les records !

2.25 milliards de lignes (119 Go) !!! ^^

le module de nettoyage de prestashop n'aide pas...

Je pense à la vider, ça devient ridicule. Sau si vous avez une solution plus "clean" je suis preneur ;)

merci :)

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...