MySQL enregistre les requêtes qui dépassent la durée spécifiée. Nous appelons les requêtes SQL qui dépassent la durée spécifiée comme requêtes lentes.
1. Vérifiez le délai
show variables like '%long%';
et vous verrez :
+---------------------------------------------------+-----------+ | Variable_name | Value | +---------------------------------------------------+-----------+ | long_query_time | 10.000000 | | max_long_data_size | 1048576 | | performance_schema_events_waits_history_long_size | 10000 | +---------------------------------------------------+-----------+
Si une requête qui dépasse long_query_time est appelée une requête lente.
2. Vérifiez l'heure de démarrage de la base de données
show status like 'uptime%';
et vous verrez
+---------------------------+-------+ | Variable_name | Value | +---------------------------+-------+ | Uptime | 76333 | | Uptime_since_flush_status | 76333 | +---------------------------+-------+
3. Vérifiez le nombre d'instructions de requête
show status like 'com_Select';
et vous verrez
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | Com_select | 1 | +---------------+-------+
4. Obtenez le nombre de connexions
show status like 'connections';
verra
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | Connections | 2 | +---------------+-------+
5. Réglez le temps de requête lent
set long_query_time = 1;
6. Démarrez le service MySQL en mode sans échec et l'enregistrement de la requête lente sera écrit dans le journal.
Activer le journal des requêtes lentes
Ajoutez les paramètres suivants au fichier de configuration MySQL
log-show-queries = D:/MySQL/Log/mysqld-slow-query. log
long-query-time = 5
log-queries-not-using-indexes
Explication :
À propos de l'emplacement de stockage du lent Fonction de journal des requêtes, le fichier de répertoire doit avoir une autorisation d'écriture. Vous pouvez utiliser les paramètres. Le système donnera un fichier par défaut host_name-show.log
long_query_time
Seuil de temps d'exécution SQL, la valeur par défaut est de 10 secondes
Notez trois points :
1. Après avoir défini le seuil long_query_time, la base de données mysql enregistrera toutes les instructions SQL dont la durée d'exécution dépasse cette valeur, mais ne sera pas enregistrée si la durée d'exécution est exactement égale à long_query_time. En d'autres termes, dans le code source MySQL, il est jugé supérieur à log_query_time, et non supérieur ou égal à.
2. À partir de MySQL 5.1, long_query_time commence à être calculé en microsecondes, enregistrant ainsi avec précision le temps d'exécution de SQL.
3. Il est recommandé que le temps ne soit ni trop petit ni trop grand, de préférence entre 5 et 10 secondes. Bien entendu, vous pouvez décider en fonction de votre propre situation.
log-queries-not-using-indexes
Si l'instruction SQL en cours d'exécution n'utilise pas d'index, la base de données MySQL enregistrera également cette instruction SQL dans le fichier journal des requêtes lentes.
Ce qui précède est le contenu de MySQL Advanced Eleven - Slow Query Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !