web-dev-qa-db-fra.com

Ralentissement de la base de données après la mise à jour vers 3.4.1

Je possède une installation wordpress et mise à jour à 3.4.1.

Après la mise à niveau, mon wordpress a connu un ralentissement très étrange.

Après tout, j'ai utilisé le

define('SAVEQUERIES', true);

dans mon wp-config.php avec combiné avec le code suivant dans mon thème footer.php

global $wpdb;
echo "<pre>";
print_r($wpdb->queries);
echo "</pre>";

et j’ai trouvé que même si je n’ai pas beaucoup de requêtes (49 requêtes que j’ai eues), il y en a

  • 4 demandes ont pris plus de 9 ''
  • 3 demandes ont pris plus de 8 ''
  • 4 demandes ont pris plus de 7 ''
  • 4 demandes ont pris plus de 6 ''
  • 8 demandes ont pris plus de 5 ''
  • 1 Quiry a pris plus de 4 ''

Ici, je vais vous montrer certaines des questions:

/* Execution time 7.0095062E-5 */
SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN ('category') AND tt.count > 0 ORDER BY t.name ASC

/* Execution time 5.3167343E-5 */
SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (77375,77379,77381)

/* Execution time 9.2029572E-5 */
SELECT wp_posts.* FROM wp_posts WHERE ID IN (77381,77379,77375)

Dans la plupart des requêtes, la requête est simple, sans complexité et je ne vois pas pourquoi ces requêtes sont si lentes.

La base de données WordPress contient environ 60 000 enregistrements et s'exécute sur percona.

Toute idée sur ce problème et comment puis-je résoudre ce problème?

2
Merianos Nikos

Si vous avez 60 000 enregistrements, essayez de nettoyer les révisions de publication/publication; ceux-ci s'accumulent vraiment et provoquent des requêtes excessivement longues. J'ai vu la taille des bases de données chuter de 90% avec des augmentations énormes de performances.

Exécutez la requête ci-dessous dans phpmyadmin ou à partir de la ligne de commande, puis optimisez:

DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'

Parlez aussi à votre hébergeur. Peut-être que MySQL ou votre processeur est en train d’être étranglé.

3
markratledge

vous avez raison ... il ne devrait pas y avoir de problème de performances et votre base de données ne nécessite que quelques améliorations pour la mise en cache.

Utilisez-vous le cache total W3 - cela devrait avoir un avantage immédiat pour les performances de votre site et vous voudrez le mettre en cache base de données si cela est possible avec votre Serveur.

Ensuite, effectuez une sauvegarde de votre base de données SQL et vous devez également optimiser et réparer les tables .

0
Damien