Jump to content

Enorme lenteur lors de la création d'une catégorie


ablink81

Recommended Posts

Bonjour,

Je suis un peu novice dans l'utilisation de ce forum et j'espère que mon sujet est dans le bon chapitre ...

Ma boutique comporte environ 5000 catégories ... et lorsque j'en créé une nouvelle, il me faut attendre entre 2 et 5 minutes !!

En activant le debug et le debug_profiling, je m’aperçois qu'il y a environ 5000 requêtes du genre  :

UPDATE `ps_category` SET `nleft` = 'XX',`nright` = 'XX' WHERE `id_category` = XX LIMIT XX

Chacune de ces requêtes prend entre 30 et 100 ms d’où le temps d'attente infernal ...

J'ai a peu près compris que nleft et nright servent à construire arborescence des catégories mais :

  1. peux-t-on s'en passer ?
  2. existe-t-il un moyen pour ne pas les redéfinir pour chaque catégorie lorsque l'on en créé une nouvelle ?

Merci d'avance.
Pascal

Link to comment
Share on other sites

Oui, j'ai bien  un UNIQUE INDEX sur la colonne id_category ...

 

Après avoir fouillé un bon moment, il se trouve que la version 1.7.6 a corrigé cette manière de faire.

Au lieu de faire X requetes (X étant en gros le nombre de catégories existantes), il n'en fait plus qu'une du genre

INSERT INTO `ps_category` (id_category, nleft, nright)
VALUES (15,6,7),(20,8,9),(34,10,11),(36,12,13),(39,14,15),(40,16,17),(43,18,19),(46,20,21) ....etc
ON DUPLICATE KEY UPDATE nleft=VALUES(nleft), nright=VALUES(nright)

Ce qui est beaucoup plus rapide ...

Merci doekia pour tya réponse, comme je vois que tu as l'aire de pratiquer depuis un moment, sais-tu ou je pourrais trouver de la docs pour configurer Mysql aux petits oignons car je ne suis pas sur de l'avoir bien optimiser. Ma boutique est sur un serveur dédié et pour autant je trouve que les requetes MySQL sont assez longues, et comme elles sont nombreuses dans Prestashop, c'est pas hyper rapide.
Ceci dit ma boutique comporte environ 5000 catégories et 30 000 produits

Merci d'avance.

 

Edited by ablink81 (see edit history)
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...