Maison > Article > base de données > Explication détaillée de la façon d'activer le journal des requêtes lentes dans MySQL
Cet article présente principalement la méthode d'activation du journal des requêtes lentes dans MySQL. L'éditeur pense que c'est assez bon, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un œil. J'espère que cela pourra aider tout le monde.
1.1 Introduction
L'activation du journal des requêtes lentes permet à MySQL d'enregistrer les requêtes qui dépassent le temps spécifié. En localisant et en analysant les goulots d'étranglement des performances, la base de données peut être mieux optimisée. . performances du système.
1.2 Connectez-vous à la base de données pour afficher
[root@localhost lib]# mysql –uroot
Parce qu'aucun mot de passe n'est défini, si vous avez un mot de passe , accédez à mysql –uroot –p pour vous connecter Mot de passe
1.2.1 Entrez MySql pour vérifier si la requête lente est activée
mysql> show variables like 'slow_query%'; +---------------------+--------------------------------------------+ | Variable_name | Value | +---------------------+--------------------------------------------+ | slow_query_log | OFF | | slow_query_log_file | /application/mysql/data/localhost-slow.log | +---------------------+--------------------------------------------+ 2 rows in set (0.00 sec)
Description du paramètre :
slow_query_log état d'activation des requêtes lentes OFF non activé ON est activé
slow_query_log_file L'emplacement où se trouve le journal des requêtes lentes stocké (ce répertoire nécessite les autorisations d'écriture du compte MySQL en cours d'exécution. Généralement défini sur le répertoire de stockage de données de MySQL)
1.2.2 Vérifiez le délai d'expiration lent des requêtes
mysql> show variables like 'long%'; +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+ 1 row in set (0.00 sec)
long_query_time Requête combien de secondes il faut pour enregistrer Par défaut 10 secondes changées en 1 seconde
1.3 Méthode de modification 1 : (non recommandé)
Méthode 1 : Activer temporairement les avantages Requête lente, pas besoin de redémarrer la base de données Inconvénients : La requête lente MySql échoue au redémarrage
Recommandation : Selon les besoins de l'entreprise, il est Il est recommandé d'utiliser le second, le premier peut être utilisé temporairement
La valeur de slow_query_log par défaut est OFF, indiquant que le journal des requêtes lentes est désactivé et peut être activé en définissant la valeur de slow_query_log, comme indiqué ci-dessous : s'il faut activer le journal des requêtes lentes, 1 signifie activé, 0 signifie désactivé.
1.3.1 Vérifiez si la requête lente est activée
mysql> show variables like '%slow_query_log%'; +---------------------+--------------------------------------------+ | Variable_name | Value | +---------------------+--------------------------------------------+ | slow_query_log | OFF | | slow_query_log_file | /application/mysql/data/localhost-slow.log | +---------------------+--------------------------------------------+ 2 rows in set (0.01 sec)
Modifiez l'instruction d'entrée (cela ne fonctionnera pas après le redémarrage , il est recommandé de le modifier dans /etc /my.cnf (les modifications prennent effet définitivement)
mysql> set global slow_query_log=1; Query OK, 0 rows affected (0.11 sec)
1.3.2 Vérifiez à nouveau
mysql> show variables like '%slow_query_log%'; +---------------------+--------------------------------------------+ | Variable_name | Value | +---------------------+--------------------------------------------+ | slow_query_log | ON | | slow_query_log_file | /application/mysql/data/localhost-slow.log | +---------------------+--------------------------------------------+ 2 rows in set (0.00 sec)
1.4 Méthode de modification 2 : (recommandée)
Modifier la requête lente MySql Beaucoup de gens ne connaissent pas la requête my. chemin cnf. Vous pouvez utiliser find pour trouver
Remarque : Mon MySQL est compilé dans /etc/my.cnf (généralement ici)
[root@localhost log]# find / -type f -name "my.cnf" /application/mysql-5.5.51/mysql-test/suite/rpl/my.cnf /application/mysql-5.5.51/mysql-test/suite/federated/my.cnf /application/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/rpl/my.cnf /application/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/federated/my.cnf /etc/my.cnf ###(一般都是这里)
1.4.1.1 Modification
[root@localhost log]# vim /etc/my.cnf
Trouvez [mysqld] et ajoutez
slow_query_log =1 slow_query_log_file=/application/mysql/data/localhost-slow.log long_query_time = 1
Description du paramètre :
slow_query_log l'état d'ouverture de requête lente 1 est activé
slow_query_log_file L'emplacement où le journal des requêtes lentes est stocké
La requête long_query_time dépasse la durée d'enregistrement en secondes. Par défaut, 10 secondes ont été modifiées en 1 seconde
Redémarrer MySQL après modification
1.5 Afficher et tester
1.5.1.1 Insérer une requête lente de test
mysql> select sleep(2); +----------+ | sleep(2) | +----------+ | 0 | +----------+ 1 row in set (2.00 sec)
1.5.1.2 Afficher le journal des requêtes lentes
[root@localhost data]# cat /application/mysql/data/localhost-slow.log /application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with: Tcp port: 3306 Unix socket: /tmp/mysql.sock Time Id Command Argument /application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with: Tcp port: 3306 Unix socket: /tmp/mysql.sock Time Id Command Argument /application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with: Tcp port: 3306 Unix socket: /tmp/mysql.sock Time Id Command Argument # Time: 170605 6:37:00 # User@Host: root[root] @ localhost [] # Query_time: 2.000835 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0 SET timestamp=1496615820; select sleep(2);
1.5.1.3 Vérifiez le nombre de requêtes lentes via les commandes MySQL
mysql> show global status like '%Slow_queries%'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Slow_queries | 1 | +---------------+-------+ 1 row in set (0.00 sec)
1.6 Outil d'analyse des journaux mysqldumpslow
Dans un environnement de production, si vous souhaitez analyser manuellement les journaux, rechercher et analyser SQL, c'est évidemment une tâche laborieuse. MySQL fournit l'outil d'analyse des journaux mysqldumpslow
Recommandations associées :
Configuration et utilisation liées au journal des requêtes lentes MySQL
La différence entre les journaux de requêtes normales et lentes dans MySQL
Introduction au fonctionnement des requêtes lentes MySQL pour l'optimisation Mysql
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!