Maison > Article > base de données > Quels sont les journaux de requêtes lentes et les suggestions d'optimisation pour apprendre MySQL ?
Quels sont les journaux de requêtes lentes et les suggestions d'optimisation pour apprendre MySQL ?
Les requêtes lentes font référence à des instructions de requête qui prennent beaucoup de temps à s'exécuter dans la base de données MySQL, ce qui peut entraîner une diminution des performances du système. Afin de découvrir et de résoudre rapidement les problèmes de requêtes lentes, MySQL fournit un outil de journalisation des requêtes lentes pour aider les développeurs à optimiser les performances en enregistrant les instructions de requêtes lentes, le temps d'exécution et d'autres informations connexes.
1. Activer le journal des requêtes lentes
Pour utiliser la fonction de journal des requêtes lentes, vous devez d'abord définir les paramètres correspondants dans le fichier de configuration MySQL. Dans le fichier de configuration MySQL my.cnf ou my.ini, recherchez la section [mysqld] et ajoutez ou modifiez les paramètres suivants :
slow_query_log = 1 // Activez le journal des requêtes lentes, la valeur par défaut est 0
slow_query_log_file = /var/ log /mysql/slow-query.log // Chemin du fichier journal des requêtes lentes
long_query_time = 1 // Définissez une requête qui prend plus de quelques secondes à s'exécuter en tant que requête lente. La valeur par défaut est de 10 secondes
Enregistrez la configuration. fichier et redémarrez le service MySQL, requête lente Le journal commencera l'enregistrement.
2. Analysez le journal des requêtes lentes
Le journal des requêtes lentes enregistre des informations détaillées sur les instructions de requête dont le temps d'exécution dépasse la définition de long_query_time. Nous pouvons découvrir quelles instructions s'exécutent lentement en analysant le journal des requêtes lentes. Voici un exemple de journal de requêtes lent :
SET timestamp=1577840405;
SELECT * FROM user
WHERE age
> 30;
Dans le journal, Query_time représente le temps d'exécution de la requête, Lock_time représente le temps de verrouillage de la requête, Rows_sent représente le nombre de lignes envoyées à le client, et Rows_examined représente le nombre de lignes interrogées.
3. Conseils de suggestions d'optimisation
Après avoir analysé le journal des requêtes lentes, nous pouvons effectuer les optimisations correspondantes en fonction des instructions de requête spécifiques et des goulots d'étranglement des performances. Voici quelques conseils d'optimisation couramment utilisés :
Exemple :
EXPLAIN SELECT * FROM user WHERE age > 30 ;
Exemple :
INSERT INTO user (name, age) VALUES ('Tom', 20), ('John', 30), ('Alice', 40);
Exemple :
PREPARE stmt FROM 'SELECT * FROM user WHERE age > ?';
EXECUTE stmt USING 30;
Exemple :
CREATE TABLE utilisateur (id INT, nom VARCHAR(50), âge INT) PARTITION PAR PLAGE (âge) (
PARTITION p0 VALEURS MOINS DE (20),
PARTITION p1 VALEURS MOINS DE (40),
PARTITION p2 VALUES LESS THAN MAXVALUE
);
Résumé
L'apprentissage de la lenteur du journal des requêtes de MySQL et des suggestions d'optimisation est crucial pour améliorer les performances de la base de données. En activant le journal des requêtes lentes, nous pouvons enregistrer les instructions dont le temps d'exécution des requêtes dépasse le seuil prédéfini et effectuer l'optimisation des performances correspondante en analysant le journal des requêtes lentes. L'utilisation raisonnable des index, la réduction du volume de transmission de données, l'utilisation d'instructions de prétraitement, de tables de partition et d'autres techniques d'optimisation peuvent améliorer considérablement l'efficacité des requêtes de base de données et les performances du système.
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!