Maison  >  Article  >  base de données  >  Explication détaillée du didacticiel de configuration et d'utilisation du journal des requêtes lentes MySQL

Explication détaillée du didacticiel de configuration et d'utilisation du journal des requêtes lentes MySQL

黄舟
黄舟original
2017-09-19 11:01:211454parcourir

Le journal des requêtes lentes est utilisé pour enregistrer certaines instructions de requête trop lentes, ce qui peut aider les administrateurs à analyser le problème. L'article suivant présente principalement le didacticiel de configuration et d'utilisation du journal des requêtes lentes MySQL, qui est présenté via un exemple de code très détaillé. , les amis dans le besoin peuvent s'y référer.

Avant-propos

Le journal des requêtes lentes MySQL est une fonction que nous rencontrons souvent dans notre travail quotidien. Le journal des requêtes lentes MySQL fournit plus que la requête. les informations sur le seuil de temps spécifié constituent la référence principale pour l'optimisation des performances et constituent une fonction très pratique pour ouvrir et configurer le journal des requêtes lentes MySQL. Vous pouvez spécifier le fichier (ou la table) enregistré, le seuil de temps dépassé, etc. Vous pouvez enregistrer du SQL lent. Pour être honnête, par rapport à la trace ou aux événements étendus de sqlserver (bien que ces deux ne soient pas les seuls), la configuration de MySQL donne toujours aux gens une sensation très rafraîchissante.

1. Ouverture du journal des requêtes lentes

Dans des circonstances normales, il vous suffit d'ajouter la configuration slow_query_log = 1 dans le fichier de configuration, c'est-à-dire, ouvrez le journal des requêtes lentes Journal des requêtes, si slow_query_log_file n'est pas spécifié, un fichier avec le nom d'hôte + 'slow'.log sera automatiquement généré.

 

2 Par défaut, le seuil de temps d'enregistrement des requêtes lentes est de 10s

 

Par défaut, si vous spécifiez slow_query_log = 1 pour démarrer MySQL, vous pouvez ouvrir la requête lente et générer automatiquement un fichier par défaut avec le nom d'hôte ++'slow'.log pour enregistrer la lenteur de l'exécution pour plus de 10 secondes.

Vous pouvez également spécifier explicitement le nom du fichier journal des requêtes lentes (il sera automatiquement créé s'il n'existe pas) et le seuil de temps d'enregistrement des requêtes lentes (10 s non par défaut).

 

Remarque : Lors de la spécification de long_query_time dans le fichier de configuration, aucune unité de temps n'est requise, seule une valeur, telle que 1 Cela signifie 1s. Si l'unité de temps est spécifiée, le service ne sera pas démarré.

 

Ce qui suit est un exemple de SQL lent enregistré dans le fichier journal

 

Trois , Enregistrez les journaux de requêtes lentes dans la table

Configuration : vous devez ajouter une configuration log_output pour enregistrer les requêtes lentes dans la table

Il existe une table slow_log par défaut sous la bibliothèque mysql. Vous pouvez directement ajouter slow_query_log_file = slow_log pour enregistrer les journaux de requêtes lentes dans la table.

 

Le SQL lent enregistré est le suivant. On peut constater que sql_text est une information binaire, pas le texte SQL original

 

Vous pouvez le convertir via la fonction CONVERTIR.

 

À propos de la différence entre les requêtes lentes enregistrées dans les fichiers journaux et les tables :

1. Requêtes lentes Enregistré dans des fichiers journaux et des tables, l'enregistrement lui-même n'est pas très différent s'il est enregistré dans la table, les informations sur le temps d'exécution de la requête lente ne peuvent pas être précises pour la subtile

2. Si la requête lente. les informations sont enregistrées dans le tableau, c'est pratique pour les requêtes, mais comme il s'agit de données structurées, cela peut être un peu plus lent que l'enregistrement dans un fichier journal de requêtes lentes (fichier texte plat) (estimation personnelle s'il est enregistré dans un). fichier, l'outil mysqldumpslow doit être analysé.

3. Les requêtes lentes n'enregistrent pas les requêtes qui ne parviennent pas à s'exécuter. Par exemple, long_query_time est défini sur 10 (10 secondes), et une requête dépasse 10 secondes, mais ne parvient pas à s'exécuter pour d'autres raisons, la lenteur de MySQL. les requêtes ne seront pas enregistrées.

Résumé

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn