web-dev-qa-db-fra.com

Requête provoquant une charge en raison du comptage postérieur à SQL_CALC_FOUND_ROWS?

J'ai trouvé cette requête causant une charge sur le serveur, mon fournisseur d'hébergement m'a demandé de la regarder.

SELECT SQL_CALC_FOUND_ROWS  wp_posts 

Je pense que cette sélection non. lignes trouvées dans la table wp_posts .. mais j'ai essayé de cette requête dans une page séparée, cela prend si longtemps pour compléter la requête. Quelqu'un peut-il m'aider à surmonter ce problème?

Merci!

4
VKGS

WordPress utilise cette fonctionnalité de MySQL pour obtenir un nombre total de publications lorsque vous récupérez uniquement un montant limité (100 publications au total, mais seulement 10 publications par page).

À partir de la source, il existe un argument de requête no_found_rows qui peut le désactiver. Cela épatera la pagination et ne devrait être utilisé qu'avec des requêtes spécifiques dont () ne nécessite pas de comptage (par exemple get_posts() l'utilise par défaut).

Vous devez probablement examiner les performances globales de votre base de données (si vous exécutez quelque chose de fou) ou s'il y a des problèmes de configuration (si vous exécutez quelque chose d'assez petit pour ne pas causer de problèmes de ressources).

3
Rarst