Jump to content

Lenteur enregistrement produit


Recommended Posts

Bonjour,

 

Depuis peu j'ai de grosses lenteurs sur mon BO lors de l'enregistrement d'un produit (+ de 10s) alors que le reste du BO et du FO est rapide.

 

J'ai un serveur dédié 1&1 et une base de données assez conséquente (+ de 1Go).

 

Quelqu'un a se soucis ?

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Merci pour le lien Pilou.

 

Mais j'ai une version assez ancienne 1.6.0.8 donc je ne suis pas concerné par ce topic.

 

En passant le mode debug, j'ai ce genre de message d'erreur "Deadlock found when trying to get lock; try restarting transaction" :

Deadlock found when trying to get lock; try restarting transaction

INSERT INTO ps_search_index (id_product, id_word, weight)
				VALUES (24,1127997,8),(24,1127998,7),(24,1127999,11),(24,1128000,6),(24,1128001,7),(24,1128002,7),(24,1128003,8),(24,1128004,10),(24,1128005,1),(24,1128006,2),(24,1128007,1),(24,1128008,1),(24,1128009,1),(24,1128010,1),(24,1128011,1),(24,1128012,1),(24,1128013,1),(24,1128014,1),(24,1128015,1),(24,1128016,1),(24,1128017,1),(24,1128018,1),(24,1128019,1),(24,1128020,1),(24,1128021,1),(24,1128022,1),(24,1128023,2),(24,1128024,2),(24,1128025,2),(24,1128026,2),(24,1128027,2),(24,1128028,2),(24,1128029,2),(24,1128030,2),(24,1128031,2),(24,1128032,2),(24,1128033,1),(24,1128034,1),(24,1128035,1),(24,1128036,4),(24,1128037,1),(24,1128038,1),(24,1128039,2),(24,1128040,1),(24,1128041,1),(24,1128042,2),(24,1128043,2),(24,1128044,1),(24,1128045,1),(24,1128046,1),(24,1128047,1),(24,1128048,1),(24,1128049,1),(24,1128050,1),(24,1128051,1),(24,1128052,1),(24,1128053,1),(24,1128054,1),(24,1128055,1),(24,1128056,1),(24,1128057,1),(24,1128058,1),(24,1128059,3),(24,1128060,3),(24,1128061,19),(24,1128062,8),(24,1128063,4),(24,1128064,4),(24,1128065,10),(24,1128066,3),(24,1128067,3),(24,1128068,3),(24,1128069,3),(24,1128070,10),(24,1128071,3),(24,1128072,3),(24,1128073,3),(24,1128074,3),(24,1128075,10),(24,1128076,3),(24,1128077,3),(24,1128078,3),(24,1128079,3),(24,84,18),(24,85,29),(24,86,15),(24,87,12),(24,88,7),(24,89,6),(24,90,2),(24,91,5),(24,92,9),(24,93,2),(24,94,7),(24,95,1),(24,96,1),(24,97,2),(24,98,1),(24,99,1),(24,100,1),(24,101,1),(24,102,1),(24,103,1),(24,104,2),(24,105,1),(24,106,1),(24,107,1),(24,108,1),(24,109,1),(24,110,2),(24,111,1),(24,112,1),(24,113,1),(24,114,1),(24,115,2),(24,116,1),(24,117,2),(24,118,1),(24,119,1),(24,120,1),(24,121,1),(24,122,1),(24,123,1),(24,124,1),(24,125,1),(24,126,1),(24,127,1),(24,128,1),(24,129,1),(24,130,1),(24,131,1),(24,132,1),(24,133,1),(24,134,1),(24,135,1),(24,136,1),(24,137,1),(24,138,1),(24,139,1),(24,140,1),(24,141,1),(24,142,1),(24,143,1),(24,144,1),(24,145,1),(24,146,3),(24,147,1),(24,148,1),(24,149,1),(24,150,1),(24,151,1),(24,152,1),(24,153,1),(24,154,1),(24,155,1),(24,156,1),(24,157,1),(24,158,1),(24,159,1),(24,160,1),(24,161,1),(24,162,1),(24,163,1),(24,164,1),(24,165,1),(24,166,1),(24,167,1),(24,168,3),(24,169,1),(24,170,1),(24,171,1),(24,172,1),(24,173,1),(24,174,1),(24,175,1),(24,176,1),(24,177,1),(24,178,1),(24,179,1),(24,180,2),(24,181,1),(24,182,1),(24,183,1),(24,184,1),(24,185,1),(24,186,3),(24,187,1),(24,188,1),(24,189,1),(24,190,1),(24,191,1),(24,192,1),(24,193,1),(24,194,1),(24,195,1),(24,196,1),(24,197,1),(24,198,1),(24,199,1),(24,200,1)
				ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight)

D'après mes recherches, "Deadlock" ça signifierais qu'il y a des requêtes SQL qui s'auto-bloquent entre elles... et du coup ça fais tout planter :s ou du moins, tout est au ralenti

Link to comment
Share on other sites

  • 2 weeks later...

J'ai un multiboutique dont une boutique qui est multilingue (3 langues - 250 produits) et en tout j'ai 4.500 produits

 

Et l'intérieur de la table ressemble à ça :

j'ai l'impression que les 3 langues ont été dupliquées sur l'ensemble du multiboutique et comme j'ai 50 boutiques...

 

bdd-capture.jpg

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

Là vous avez 4 langues (id_lang de 1 à 4)

 

Maintenant le problème vient de l'insertion dans la table index (près de 2 millions d'entrées dans votre table^^)

En effet Prestashop essaye d'insérer mais doit lire la table pour chaque nouveau mot clé et effectuer un update si l'entrée existe déjà

 

Dans votre exemple plus haut, vous constaterez le nombre impressionnant de mots-clé juste pour le produit 24...

Link to comment
Share on other sites

Oui en effet, mais pourquoi j'en ai autant ? (j'ai que 4 mots clés de renseignés sur le produit 24).

 

Entre ma table product_lang qui fait quasiment 1 Go et ma table index qui comporte 2 millions d'entrées, ma bdd est vraiment broken :s

 

Des solutions à m'apporter ? ^^

Link to comment
Share on other sites

Oui en effet, mais pourquoi j'en ai autant ? (j'ai que 4 mots clés de renseignés sur le produit 24).

 

Lol... parce que la fonction intègre tous les mots de vos descriptions, sauf si vous avez placé ceux-ci dans les exceptions Préférences -> Rechercher

Link to comment
Share on other sites

Oui ça je l'ai fais, j'ai mis le poids à 0 et ré-indexer les produits.

 

Et oui, j'ai 4 langues (j'ai oublié de compter le français). Alors est-ce que le fait d'avoir 4 langues pour 250 produits justifie les 800 Mo ? ça m'étonnerait quand même :(

Link to comment
Share on other sites

les 800 Mo c'est pas la table index, mais product_lang, donc toutes vos descriptions dans les 4 langues pour chacun de vos produits (description, description courte et url_rewrite)

Si vos descriptions sont longues, ceci explique la taille conséquente de ces 2 tables

Link to comment
Share on other sites

  • 2 weeks later...

J'ai acheté ce module https://www.prestashop.com/forums/topic/329251-module-bozoom-prestashop-back-office-slow-increase-performance-for-15-16/?hl=+slow%20+product%20+save qui permet d'optimiser le JS du BO mais ça n'a pas résolu le problème...

 

Je ne pense pas que ça vienne non plus de l'hébergement car un technicien m'a dit que le serveur était à 50% de sa capacité maximale.

 

Il me faut une autre piste :(

Link to comment
Share on other sites

Si vous regardez plus haut, dans les query de ma capture d'écran j'ai 22 secondes pour ça

SELECT SQL_NO_CACHE * FROM `ps_carrier_lang`
WHERE `id_carrier` = 116 AND `id_shop` = 1

Et encore 22s pour ça

SELECT SQL_NO_CACHE * FROM `ps_carrier_lang`
WHERE `id_carrier` = 106 AND `id_shop` = 1

C'est énorme.. comment résoudre ce problème ? :/

Link to comment
Share on other sites

Je continue dans mes tests, voilà ce que j'ai fais :

 

- J'ai installé en local avec wampserver la même version Prestashop (1.6.0.8) que j'ai actuellement (que j'ai téléchargé sur le site officiel bien sûr) pour avoir une base clean. Jusque la, aucun soucis, les produits s'enregistre rapidement

 

- J'ai ensuite exporté ma base de données de mon Presta qui a des soucis de lenteur (4500 produits), et je l'ai importé sur mon serveur local. Et la je retrouve les mêmes soucis de lenteur en local (une vingtaine de secondes pour enregistrer mon produit).

 

Comment une base de données peut ralentir l'enregistrement des produits en local ? :o

Link to comment
Share on other sites

Ce n'est pas parce que tu es en local que ta base de données sera plus efficace. Il faudrait peut-être voir à optimiser ta base, si tu as plusieurs boutiques il va surement falloir songer à les séparer sur plusieurs bases différentes histoire d'éviter qu'à chaque requête tu charge toute ces données sur une seule table.

Link to comment
Share on other sites

Ce n'est pas parce que tu es en local que ta base de données sera plus efficace. Il faudrait peut-être voir à optimiser ta base, si tu as plusieurs boutiques il va surement falloir songer à les séparer sur plusieurs bases différentes histoire d'éviter qu'à chaque requête tu charge toute ces données sur une seule table.

C'est un multiboutique :P

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...