Jump to content

ps_connections et slowlog


Recommended Posts

Bonjour à tous,

 

J'ai un petit souci avec une boutique qui tourne très lentement malgré le passage en 1.5.1. J'ai vérifié le slowlog est j'ai une requête sur la table ps_connections qui apparait en boucle, ex:

 

# Query_time: 10  Lock_time: 0  Rows_sent: 0  Rows_examined: 2917424
SELECT `id_connections` FROM `ps_connections`
 WHERE ip_address = 1123631676
  AND DATE_ADD(`date_add`, INTERVAL 30 MINUTE) > '2012-10-17 00:23:00'
   AND id_shop IN (1)
 ORDER BY `date_add` DESC LIMIT 1;

 

Selon mes derniers checks, ma table ps_connections contient environ 3 millions de lignes (500mo) et je ne parle pas des tables ps_connections_page et _sources qui font respectivement 3 millions/800mo et 11 millions/1,4go.

 

J'ai pas mal parcouru le forum mais j'aurai aimé avoir une réponse de la team (ou d'un très bon dev) à la question: peut-on faire un truncate sur ces 3 tables? Et si oui, que vais-je perdre au niveau des stats?

 

Question subsidiaire : mon état actuelle peut-il être la cause de la lenteur du site ou alors je dois chercher ailleurs?

 

PS: question aussi valables pour ps_guest (3 millions/300mo) et ps_page_viewed (3 millions/120mo)

 

Merci par avance!

Link to comment
Share on other sites

Corrigera le problème de lenteur... Vous n'avez pas poser qu'une seule question !

 

Concernant les tables connections, faites une sauvegarde des tables avant de les vider et vérifier que cela ne provoque pas d'erreur.

 

Ces tables enregistrent l'historique des connexions, les pages visitées et le temps passées dessus, donc c'est à des fins statistiques mais ce ne sont pas des données critiques pour le fonctionnement de prestashop.

Link to comment
Share on other sites

Oui mais tu vas tout de même perdre certaines stats, non?

Je pense en particulier au chemin du visiteur jusqu'à la validation de sa commande. Après je ne sais pas si le client s'y intéresse ...

 

Peut-on désactiver uniquement cette partie et laisser les stats actifs?

Link to comment
Share on other sites

Oui effectivement tu perds de l'information, mais MySQL est un très mauvais choix (enfin dans une configuration basique) pour cette utilisation, surtout en prod.

 

En général, sur tous projets Web, il ne faut jamais qu'une requete HTTP mène à un INSERT sans aucun check, imagine un bot qui boucle pour rempli ta DB en quelques heures (j'ai fait un check par exemple sur le formulaire de contact, en 2 heures j'ai fait planté une boutique sur OVH ^^).

 

Pour les stats, il y a des outils beaucoup plus performant et fait pour ça (GA...).

Link to comment
Share on other sites

  • 4 months later...

Prestashop ne fait qu'un insert par session.

 

Les modules de stats tous activés par défaut au sein de PS sont énormément gourmands. Multiples requêtes et tables qui finissent par exploser en taille.

 

Il est conseillé de les désactiver et de se contenter d'un petit tags analytics asynchrone.

 

Sinon, laisser actif en prod sur une boutique ayant du bon trafic, c'est suicidaire !

Link to comment
Share on other sites

  • 1 year later...

Bonjour

J'ai un problème avec des slowlogs aussi .

Cela me donne ceci :

 

SELECT SQL_CALC_FOUND_ROWS

a.`id_cart`,a.date_add as date_add

, CONCAT(LEFT(c.`firstname`, 1), '. ', c.`lastname`) `customer`, a.id_cart total, ca.name carrier, o.id_order, IF(co.id_guest, 1, 0) id_guest

FROM `ps_cart` a

 

LEFT JOIN ps_customer c ON (c.id_customer = a.id_customer)

LEFT JOIN ps_currency cu ON (cu.id_currency = a.id_currency)

LEFT JOIN ps_carrier ca ON (ca.id_carrier = a.id_carrier)

LEFT JOIN ps_orders o ON (o.id_cart = a.id_cart)

LEFT JOIN `ps_connections` co ON (a.id_guest = co.id_guest AND TIME_TO_SEC(TIMEDIFF(NOW(), co.`date_add`)) < 1800) 

 

WHERE 1 

 

Ma question est la suivante : 

peut on vider ces tables ps_customer, currency, carrier, order et connection pour ne plus avoir de slowlog ?

 

Mon hebergeur, infomaniak est un peu pressant pour trouver la solution de ce problème ( nous sommes sur un mutualisee chez eux )

 

J'attends vos retours

Merci

Link to comment
Share on other sites

Bonjour,

 

Les tables customer, currency, carrier et order sont vitales pour le système: n'y touche surtout pas ;)

 

Les tables connections, connections_page et connections_sources peuvent être vidées mais tu perdras quelques informations au niveau des statistiques du site.

 

Avant toute modification, penses à faire un backup de ta base (mm si tu as un backup natif chez Infomaniak, on est jamais trop prudent!)

 

Enfin, pour fréquenter très régulièrement Infomaniak, ils sont effectivement vite relou et surtout très dur de la feuille ... :)

Link to comment
Share on other sites

ma question est surtout : est ce que cela va réduire mes slowlogs ? 

est ce que quelqu un a deja eu ce problème ?

autre chose, je chercherai quelqu'un pour me mettre a jour prestashop ( je suis en 1.5 ) et donc aussi s'occuper de ce problème de slowlogs.

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