Jump to content

Lenteur du site à cause de la table ps_configuration


Recommended Posts

Bonjour à tous,

 

Notre site est de plus en plus lent. Je pense que ça vient de la BDD.

 

Particulièrement de la table ps_configuration qui a 76685 rows. Ca me parait énorme !

 

J'hésite à supprimer les duplicatas mais j'aurais besoin de conseils pour éviter de faire importe quoi.

 

Que puis-je supprimer sans risque ?

 

Connaissez-vous des requêtes SQL qui pourrait aider ?

 

En vous remerciant par avance pour votre aide.

 

Cordialement,

 

 

Pascal

 

Query Time (ms) Rows Filesort Group By Location SELECT SQL_NO_CACHE c.`name`, cl.`id_lang`, IF(cl.`id_lang` IS NULL, c.`value`, cl.`value`) AS value, c.id_shop_group, c.id_shop
FROM `px_configuration` c
LEFT JOIN `px_configuration_lang` cl ON (c.`id_configuration` = cl.`id_configuration`) 295.8 76685     /classes/Configuration.php:148

 

Link to comment
Share on other sites

ça veux dire que tu as un module qui utilises une requête SQL avec insert au lieu de Configuration::updateValue.

 

Il faut trouver le module en question, pour ceci cherche date_add la plus ancienne pour ces doublons et ça te donnera une idée de la date d'installation du module en question.

Link to comment
Share on other sites

Je pense que ça vient d'un module de statistiques. Je les ai désactivés depuis.

 

Mais je me demande si je peux supprimer les doublons en direct sur la bdd sans risque en ne conservant que la dernière entrée. Et s'il existe une requête SQL qui pourrais me simplifier cette tâche fastidieuse.

Link to comment
Share on other sites


Voici les entrées que je pense supprimer :

  • SALES_CATALOG (+ SALES_CATALOG_EXPIRE)
  • ABANDONED_CARTS +expire
  • AVG_CUSTOMER_AGE +expire
  • AVG_ORDER_VALUE +expire
  • CONVERSION_RATE +expire
  • CUSTOMER_MAIN_GENDER +expire
  • DISABLED_CATEGORIES +expire
  • DISABLED_MODULES +expire
  • DISABLED_PRODUCTS +expire
  • EMPTY_CATEGORIES +expire
  • NETPROFIT_VISIT +expire
  • NEWSLETTER_REGISTRATIONS +expire
  • ORDERS_PER_CUSTOMER + expire
  • PERCENT_PRODUCT_OUT_OF_STOCK + expire
  • PRODUCT_AVG_GROSS_MARGIN +expire
  • PRODUCTS_PER_CATEGORY +expire
  • TOP_CATEGORY +expire
  • UPDATE_MODULES +expire
  • ENABLED_LANGUAGES +expire
  • FRONTOFFICE_TRANSLATIONS +expire
  • INSTALLED_MODULES +expire
  • MAIN_COUNTRY +expire
 

Voici les requêtes auxquelles je pense : 

 

Afficher les doublons :

SELECT COUNT( * ) AS nbr_doublon,  `name` 

FROM ps_configuration

GROUP BY  `name` 

HAVING COUNT( * ) >1

LIMIT 0 , 30

 

Supprimer les doublons :

DELETE FROM ps_configuration

LEFT OUTER JOIN (

        SELECT MAX(id_configuration) as id_configuration, `name`

        FROM ps_configuration

       WHERE `name` = 'SALES_CATALOG'

        GROUP BY `name`

    ) as t1 

    ON ps_configuration.id_configuration = t1.id_configuration

WHERE t1.id_configuration IS NULL

 

Qu'en pensez-vous ?

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

  • 1 year later...

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