GoDaddy Aide

Nous avons fait de notre mieux afin de traduire cette page pour vous. La page en anglais est également disponible.

Examiner les requêtes MySQL lentes

Vous avez activé la consignation des requêtes lentes et ont maintenant un journal à examiner. Si vous n'avez pas activé la journalisation, vous pouvez trouver les étapes ici .

Analyse du journal

Emplacement du journal:
/var/log/slow-queries.log
REMARQUE: Si vous ne trouvez pas de journal à cet emplacement, vérifiez l'entrée dans votre my.cnf et vérifiez que MySQL a été redémarré après la modification.
Format:
# Heure: 210905 6:33:11 # User @ Host: dbuser [dbname] @ hostname [1.2.3.4] # Query_time: 12.116250 Lock_time: 0.000035 Rows_sent: 0 Rows_examined: 201565 use dbname; SET horodatage = 1409898791; ... UNE DEMANDE LENTE ICI ...

Le journal peut être accablant lorsque vous avez des dizaines, voire des centaines d’entrées dans le format ci-dessus. Pour rendre le journal plus lisible, utilisez mysqldumpslow pour analyser le journal.

mysqldumpslow -r -a /var/log/mysql/mysqld.slow.log
La sortie contiendra des informations importantes comme l' heure , les lignes et la requête .
Nombre: 2 Temps = 20.54s (41s) Verrouiller = 0.02s (0s) Lignes = 12547802 (0), dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id = '214380' ORDER BY site_id DESC LIMIT 0,2 Nombre: 1 Heure = 21,74s (21s) Verrouiller = 0,01s (0s) Lignes = 12547802 (0), dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id = '214380' ORDER BY site_id DESC LIMIT 0,2 Nombre: 1 Heure = 23.86s (23s) Lock = 0.20s (0s) Rows = 12547802 (0), dbuser [dbuser] @localhost SELECT * FROM db_exp_table WHERE site_user_id = '214380' ORDER BY site_id DESC LIMIT 0,2

En examinant l'exemple ci-dessus, nous avons 1 requête qui a pris 20-24 secondes pour s'exécuter. Cela provoque des problèmes avec votre site, allant de temps de chargement lents à des erreurs de temporisation (rotation sans fin). La requête examine 12 547 802 lignes. Une requête volumineuse (par exemple, select *) exécutée sur une table de plus de 12 millions de lignes entraînera probablement une mauvaise expérience utilisateur. Optimiser la requête (par exemple, sélectionner des «tables basses») ou réduire le nombre de lignes examinées (par exemple archiver les anciennes données) accélérera la requête.

Si le fichier journal est volumineux, exécutez mysqldumpslow et enregistrez la sortie dans un fichier. Cela facilitera la vérification avec d'autres outils de manipulation de fichiers tels que grep ou find .

mysqldumpslow -r -a /var/log/slow-queries.log > slow.log.parsed

Étapes suivantes

Après avoir examiné le journal des requêtes lentes, vous devriez avoir une bonne idée des requêtes problématiques qui doivent être corrigées. Si votre site fonctionne toujours lentement avec MySQL et utilise des ressources importantes, vous devrez peut-être optimiser MySQL pour mieux utiliser les ressources de votre serveur.

Une fois que vous avez terminé avec le journal, veillez à désactiver la journalisation des requêtes lentes MySQL . Laisser la journalisation activée épuisera les ressources MySQL inutilement et remplira potentiellement votre disque (avec de mauvaises requêtes).

Services d'hébergement GoDaddy

Nos experts en serveurs peuvent activer / désactiver la journalisation lente des requêtes MySQL et optimiser MySQL. Pour en savoir plus sur ce service, nos guides GoDaddy sont là pour vous aider.

En savoir plus

Pour en savoir plus sur les services d'hébergement de GoDaddy, consultez notreMenu Services d'hébergement . -