Maison > base de données > tutoriel mysql > La différence entre les journaux de requêtes normaux et lents dans MySQL

La différence entre les journaux de requêtes normaux et lents dans MySQL

一个新手
Libérer: 2017-09-08 10:12:49
original
1504 Les gens l'ont consulté


Intro

<br/>
Copier après la connexion

<br/>

Un partage précédent a mentionné que le type de journal de MySQL peut Il est divisé en trois types, journal des erreurs (error_log), journal des requêtes (query_log) et journal binaire (binary_log). Pour l'introduction et l'utilisation de error_log, voir error_log dans le journal MySQL. Cet article présente principalement les principes et l'utilisation de general_log et slow_query_log.

Journal des requêtes générales

Journal des requêtes générales (general_log) est principalement utilisé pour interroger les informations pertinentes lorsque chaque client se connecte à la base de données et les instructions SQL exécutées sur la configuration de la base de données. méthode Pour :

1. Vérifiez si le journal des requêtes générales est activé et son chemin de stockage :

mysql> show variables like "general_log%";
+------------------+------------------------------+| Variable_name    | Value                        |
+------------------+------------------------------+| general_log      | OFF                           |
| general_log_file | /var/lib/mysql/localhost.log |
+------------------+------------------------------+
2 rows in set (0.00 sec)
Copier après la connexion

Dans la sortie de l'écran, general_log et general_log_file enregistrez la requête générale actuelle. L'état du commutateur et le chemin du journal.

2. Activez le journal général des requêtes

    set global general_log = ON
Copier après la connexion

Si la requête réussit :

mysql> show variables like "general_log%";
+------------------+------------------------------+| Variable_name    | Value                        |
+------------------+------------------------------+| general_log      | ON                           |
| general_log_file | /var/lib/mysql/localhost.log |
+------------------+------------------------------+
2 rows in set (0.00 sec)
Copier après la connexion

Succès.

Sortez et voyez s'il est généré et enregistré correctement :

[root@localhost ~]# cat /var/lib/mysql/localhost.log
/usr/sbin/mysqld, Version: 5.7.19 (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
2017-08-14T09:33:11.364650Z     5 Quit  
2017-08-14T09:33:20.671113Z     6 Connect   root@localhost on  using Socket
2017-08-14T09:33:20.671323Z     6 Query select @@version_comment limit 1
2017-08-14T09:33:22.964610Z     6 Query show variables like &#39;%log%&#39;
2017-08-14T09:33:24.574224Z     6 Quit
Copier après la connexion

Succès, et nous pouvons voir que le journal enregistre non seulement la commande SQL, mais inclut également le temps d'exécution, l'ID , et le type de commande et d'autres données associées

Journal des requêtes lentes

Le journal des requêtes lentes enregistre les instructions dont la durée de l'instruction SQL dépasse le long_query_time prédéfini lorsque la quantité de données est. grand, , vous pouvez voir quelles instructions du journal des requêtes lentes doivent être optimisées.

1. Configuration du journal des requêtes lentes

La configuration du journal des requêtes lentes se trouve dans le fichier de configuration de la base de données my.cnf :

[root@localhost ~]# cat /etc/my.cnf | grep -E &#39;long|slow|not_using_indexes&#39;long_query_time = 1#log-slow-queries = /var/log/mysql/slow.loglog_queries_not_using_indexes
Copier après la connexion

Vous pouvez voir :

long_query_time = 1 signifie que si le temps d'exécution de l'instruction SQL dépasse 1 s, elle sera enregistrée <br/>log-slow-queries = /var/log/mysql/slow.log est le paramètre du chemin lent du journal des requêtes < ; 🎜><br/>Cela signifie que les instructions qui n'utilisent pas d'index peuvent réduire la cible d'enregistrementlog_queries_not_using_indexes

La configuration réelle est la même que celle du journal de requête général. Entrez la commande dans l'interface interactive mysql pour activer la requête lente. log :

    set slow_query_log = ON
Copier après la connexion

2. Vérifiez si la requête a réussi

[root@localhost ~]# cat /var/lib/mysql/localhost-slow.log
/usr/sbin/mysqld, Version: 5.7.19 (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
Copier après la connexion
Succès.

Mais notez que slow_query_log peut enregistrer des déclarations liées aux autorisations des utilisateurs et aux mots de passe, veuillez donc faire attention au stockage sécurisé des journaux lorsque vous utilisez des fichiers journaux de requêtes lentes.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal