Maison > Article > base de données > La différence entre les journaux de requêtes normaux et lents dans MySQL
<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 (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)
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
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)
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 '%log%' 2017-08-14T09:33:24.574224Z 6 Quit
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
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 'long|slow|not_using_indexes'long_query_time = 1#log-slow-queries = /var/log/mysql/slow.loglog_queries_not_using_indexes
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 log-slow-queries = /var/log/mysql/slow.log
est le paramètre du chemin lent du journal des requêtes
Cela signifie que les instructions qui n'utilisent pas d'index peuvent réduire la cible d'enregistrementlog_queries_not_using_indexes
set slow_query_log = ON
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 ArgumentSuccè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!