DBAtlas · Atlas d'exploitation des bases de données

Capturer un slow log complet de courte durée et l'analyser avec pt-query-digest

MySQLPerformances

Commande

-- Temporary full capture (e.g. 10 minutes); only new connections are affected
SET GLOBAL slow_query_log_file = '/var/lib/mysql/slow.log';
SET GLOBAL log_slow_extra = ON;
SET GLOBAL long_query_time = 0;
SET GLOBAL slow_query_log = ON;
-- ... then return to the normal threshold
SET GLOBAL long_query_time = 1;

# Shell: top 10 queries by total time
pt-query-digest --limit=10 --order-by=Query_time:sum --noversion-check /var/lib/mysql/slow.log > /tmp/digest.txt
pt-query-digest --since='2026-10-08 09:00:00' --until='2026-10-08 10:00:00' --filter '$event->{db} && $event->{db} eq "shop"' --report-format=profile --noversion-check /var/lib/mysql/slow.log

Ce que fait la commande

Capture toutes les requêtes pendant une courte fenêtre avec long_query_time=0 ; pt-query-digest les regroupe par empreinte et produit un rapport classé avec temps total / moyen / p95, lignes examinées et un exemple de requête.

Quand l'utiliser

Quand les digests de performance_schema ne suffisent pas : analyse avec le texte complet des instructions et les vrais paramètres, comparaison avant / après un déploiement, revue hors ligne sur un autre hôte.

Attention

long_query_time est copié depuis la valeur globale à l'ouverture d'une session ; les connexions existantes d'un pool ne voient pas le nouveau seuil avant de se reconnecter. long_query_time=0 écrit des milliers d'entrées par seconde sur un serveur chargé ; surveillez l'espace disque et l'IO, gardez la fenêtre courte et revenez toujours en arrière. Copiez le fichier hors de la production pour l'analyse. L'utilisateur qui exécute pt-query-digest doit avoir un accès en lecture au fichier (mode 640, mysql:mysql).

Ouvrir dans DBAtlas →

Voir aussi