
Quand la base ralentit un site cPanel, augmenter les workers PHP risque de multiplier les requêtes en attente. Le journal lent décrit par MySQL permet de préparer une enquête ciblée : voici comment organiser une courte collecte sur MySQL 8.0 avec les droits d’administration nécessaires.
1. Définir une fenêtre de collecte
Choisissez une action reproductible : recherche dans le catalogue, affichage du panier ou export. Notez le domaine, la base utilisée et l’horaire. Vérifiez le moteur réel ; les commandes et options de MariaDB doivent être adaptées à sa version.
Dans une session SQL d’administration, consignez les valeurs avant modification :
SELECT VERSION();SHOW GLOBAL VARIABLES LIKE 'slow_query_log%';SHOW GLOBAL VARIABLES LIKE 'long_query_time';SHOW GLOBAL VARIABLES LIKE 'log_output';SHOW GLOBAL VARIABLES LIKE 'min_examined_row_limit';Contrôlez l’espace libre sur le volume du journal et ses permissions. Les requêtes peuvent contenir des données clients : gardez la collecte dans un emplacement réservé aux administrateurs, avec une durée de conservation définie.
Annoncez une heure de fin et un responsable du retour aux valeurs initiales. Une collecte laissée active sans surveillance peut devenir un nouveau problème de disque.
2. Capturer puis regrouper
Pour une collecte de diagnostic, le choix suivant est un exemple, pas une configuration permanente recommandée :
SET GLOBAL log_output = 'FILE';SET GLOBAL long_query_time = 2;SET GLOBAL slow_query_log = ON;Le seuil global s’applique aux nouvelles sessions : une connexion applicative persistante peut conserver son ancien seuil. Vérifiez qu’une requête réellement lente de votre essai apparaît avant de considérer la collecte valide. Le filtre de lignes examinées peut également exclure des requêtes ; conservez sa valeur dans votre dossier d’enquête.
Après la fenêtre, rétablissez les valeurs relevées, y compris la destination du journal. Si le journal était déjà actif pour une autre supervision, restaurez cet état au lieu de le couper.
Sur une copie protégée du fichier, utilisez le chemin réel :
mysqldumpslow -s t -t 10 /chemin/slow.logmysqldumpslow -s c -t 10 /chemin/slow.logComparez les familles coûteuses et celles qui reviennent souvent. Évitez d’activer immédiatement la journalisation de toutes les requêtes sans index : elle peut produire beaucoup de bruit.
3. Livrer une correction vérifiable
Pour chaque famille retenue, consignez la base, le compte applicatif, la fréquence observée et l’action utilisateur correspondante. Dans WHM, rapprochez cette base du compte propriétaire ; ne déduisez pas le client depuis le seul processus système MySQL.
Proposez ensuite un essai précis : réduire un appel répété, modifier une requête ou évaluer un index sur une copie de test. Une requête lente isolée ne justifie pas de modifier tout le serveur.
Rejouez la même action avec un volume comparable, puis mesurez le temps de réponse et la fréquence de la famille SQL. Conservez un extrait expurgé et le résultat avant/après ; supprimez la collecte sensible à la fin de sa rétention.
Sources : MySQL — slow query log, MySQL — mysqldumpslow.
Retrouvez-le dans nos publications
Les étapes clés de cet article, en carrousel. Suivez-nous pour découvrir les prochaines. Nos publications sont rédigées en anglais.




