Table des matières
introduction
Examen des connaissances de base
Analyse du concept de base ou de la fonction
Définition et fonction du journal de requête lente
Comment fonctionne Performance_schema
Exemple d'utilisation
Utilisation de base: analyser les journaux de requête lents
Utilisation avancée: utilisez des performances_schema pour optimiser la requête
Erreurs courantes et conseils de débogage
Optimisation des performances et meilleures pratiques
Maison base de données tutoriel mysql Comment identifier et optimiser les requêtes lentes dans MySQL? (Journal de requête lente, performance_schema)

Comment identifier et optimiser les requêtes lentes dans MySQL? (Journal de requête lente, performance_schema)

Apr 10, 2025 am 09:36 AM
Optimisation des performances Mysql Query

Pour optimiser la requête lente MySQL, vous devez utiliser le journal de requête lent et les performances_schema: 1. Activer le journal de requête lente et définir les seuils pour enregistrer la requête lente; 2. Utilisez Performance_schema pour analyser les détails de l'exécution de la requête, découvrir les goulots d'étranglement des performances et optimiser.

Comment identifier et optimiser les requêtes lentes dans MySQL? (Journal de requête lente, performance_schema)

introduction

Lorsque vous êtes piégé dans le labyrinthe d'optimisation des performances des bases de données MySQL, l'identification et l'optimisation des requêtes lentes est sans aucun doute la clé pour craquer le labyrinthe. Aujourd'hui, nous explorerons en profondeur la façon d'utiliser le journal de requête lent de MySQL et Performance_schema, deux outils puissants, pour révéler et résoudre les coupables qui ralentissent votre base de données. Que vous soyez un novice de base de données et un expert expérimenté de base de données, cet article peut vous fournir des conseils pratiques et des informations uniques.

Examen des connaissances de base

Avant de commencer à explorer des stratégies d'optimisation spécifiques, vous pourriez aussi bien passer rapidement en revue les outils que nous utiliserons - Log de requête lente et performance_schema.

Le journal de requête lent est une fonctionnalité de MySQL qui enregistre les requêtes dont le temps d'exécution dépasse un certain seuil. Ce seuil peut être défini par la variable long_query_time . En analysant ces journaux, nous pouvons trouver des requêtes lentes qui affectent les performances de la base de données.

Performance_schema est un système de surveillance des performances dans MySQL. Il fournit des données de performances granulaires plus fines, y compris le temps d'exécution de la requête, le temps d'attente de verrouillage, etc. Grâce à Performance_schema, nous pouvons non seulement voir le temps d'exécution global de la requête, mais aussi acquérir une compréhension approfondie des performances de la requête à chaque étape.

Analyse du concept de base ou de la fonction

Définition et fonction du journal de requête lente

Le journal de requête lent est un fichier journal utilisé par MySQL pour enregistrer les requêtes dont le temps d'exécution dépasse le seuil défini. Sa fonction principale est de nous aider à identifier les requêtes qui ont des impacts négatifs sur les performances de la base de données. En analysant le journal de requête lent, nous pouvons découvrir les requêtes qui doivent être optimisées et prendre des mesures correspondantes.

Par exemple, supposons que nous définissons long_query_time à 1 seconde, puis toutes les requêtes qui ont été exécutées depuis plus de 1 seconde seront enregistrées dans le journal de requête lent.

 - Activer le journal de requête lent ensemble global slow_query_log = 'on';
- Définissez le seuil de requête lent sur 1 seconde set global long_query_time = 1;

Comment fonctionne Performance_schema

Le principe de travail de Performance_schema est de surveiller les opérations internes de MySQL à travers une série d'événements. Ces événements incluent l'exécution de la requête, les E / S de fichiers, l'attente de verrouillage, etc.

Par exemple, nous pouvons afficher le temps d'exécution d'une requête via la requête suivante:

 Sélectionnez Event_name, TIMER_WAIT
De performance_schema.events_statements_current
Où thread_id = (sélectionnez thread_id dans performance_schema.threads où processList_id = connection_id ());

Exemple d'utilisation

Utilisation de base: analyser les journaux de requête lents

La façon la plus élémentaire d'analyser les journaux de requête lents consiste à utiliser l'outil mysqldumpslow , qui peut nous aider à trouver rapidement la requête la plus lente. Par exemple:

 mysqldumpslow -st -t 10 /path/to/slow-query.log

Cette commande répertorie les 10 requêtes qui ont le temps d'exécution le plus long dans le journal de requête lent. Ici -st signifie trier par temps, -t 10 signifie afficher les 10 premiers enregistrements.

Utilisation avancée: utilisez des performances_schema pour optimiser la requête

Performance_schema peut fournir des données de performances plus détaillées. Par exemple, nous pouvons analyser le plan d'exécution d'une requête via la requête suivante:

 Sélectionnez * dans Performance_schema.events_statements_history_long
Où sql_text comme '% select%'
Ordre par TIMER_WAIT DESC
Limite 1;

Cette requête renvoie l'instruction SELECT avec le temps d'exécution récent le plus long et affiche son plan d'exécution et d'autres données de performance. Grâce à ces données, nous pouvons avoir une compréhension plus approfondie des goulots d'étranglement des performances de la requête et prendre des mesures d'optimisation correspondantes.

Erreurs courantes et conseils de débogage

Lorsque vous utilisez des journaux de requête lents et des performances_schema, vous pouvez rencontrer des erreurs et des malentendus courants. Par exemple:

  • J'ai oublié d'activer le journal de requête lent : si le journal de requête lent n'est pas activé, nous ne pouvons pas enregistrer la requête lente. Il peut être activé par SET GLOBAL slow_query_log = 'ON'; ;.
  • Réglez le seuil trop élevé : si long_query_time est réglé trop haut, certaines requêtes qui doivent être optimisées peuvent être manquées. Il est recommandé d'ajuster ce seuil en fonction des conditions réelles.
  • Ignorer les frais généraux de Performance_schema : Performance_schema apportera certaines frais généraux de performance, en particulier dans des environnements à haute charge. La surcharge peut être contrôlée via la variable performance_schema_consumer_global_instrumentation .

Optimisation des performances et meilleures pratiques

Dans les applications pratiques, l'optimisation de la requête lente nécessite de combiner plusieurs méthodes et outils. Voici quelques stratégies d'optimisation et meilleures pratiques:

  • Optimisation d'index : En analysant les journaux de requête lents et les données Performance_schema, recherchez des requêtes qui n'ont pas utilisé d'index ou sont utilisées de manière inappropriée, et ajoutez ou ajustez l'index.
  • Recriture de requête : certaines requêtes peuvent améliorer les performances en réécrivant. Par exemple, réécrivez des sous-requêtes complexes pour rejoindre ou utiliser des tables temporaires pour réduire les calculs en double.
  • Optimisation du cache : L'utilisation rationnelle du cache de requête de MySQL et du cache au niveau de l'application peut améliorer considérablement les performances de la requête.
  • Mises à niveau matérielle : Dans certains cas, les goulots d'étranglement matériels peuvent être la principale cause de requêtes lentes. Les mises à niveau matérielle appropriées, telles que l'ajout de la mémoire ou l'utilisation de SSD, peuvent considérablement améliorer les performances de la base de données.

Pendant le processus d'optimisation, les points suivants doivent être prêts à l'attention:

  • La surveillance et le réglage sont un processus continu : l'optimisation des performances de la base de données n'est pas un travail unique et nécessite une surveillance et un réglage continus.
  • Test et vérification : Avant d'appliquer tout schéma d'optimisation dans un environnement de production, il doit être entièrement testé et vérifié dans l'environnement de test pour s'assurer qu'aucun nouveau problème n'est introduit.
  • Équilibrer les performances et la consommation de ressources : Bien que la poursuite des performances, la consommation de ressources doit également être prise en compte. Une optimisation excessive peut entraîner un gaspillage de ressources et affecter les performances globales du système.

Grâce aux méthodes et pratiques ci-dessus, nous pouvons identifier et optimiser efficacement les requêtes lentes dans MySQL, améliorant ainsi les performances globales de la base de données. J'espère que cet article pourra vous fournir un fort soutien et une inspiration sur la route de l'optimisation des performances de 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!

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1532
276
Ticage de performances Nginx: Optimisation de la vitesse et de la faible latence Ticage de performances Nginx: Optimisation de la vitesse et de la faible latence Apr 05, 2025 am 12:08 AM

Le réglage des performances de Nginx peut être obtenu en ajustant le nombre de processus de travail, la taille du pool de connexion, l'activation des protocoles de compression GZIP et HTTP / 2 et en utilisant l'équilibrage du cache et de la charge. 1. Ajustez le nombre de processus de travail et la taille du pool de connexion: Worker_ProcessesAuto; Événements {Worker_Connections1024;}. 2. Activer la compression GZIP et le protocole http / 2: http {gzipon; serveur {écouter443sslhttp2;}}. 3. Utilisez l'optimisation du cache: http {proxy_cache_path / path / to / cachelevels = 1: 2k

Apache Performance Tuning: Optimisation de la vitesse et de l'efficacité Apache Performance Tuning: Optimisation de la vitesse et de l'efficacité Apr 04, 2025 am 12:11 AM

Les méthodes pour améliorer les performances d'Apache incluent: 1. Ajustez les paramètres Keepalive, 2. Optimiser les paramètres multi-processus / thread, 3. Utilisez MOD_DEFLATE pour la compression, 4. Implémentez le cache et l'équilibrage de la charge, 5. Optimiser la journalisation. Grâce à ces stratégies, la vitesse de réponse et les capacités de traitement simultanées des serveurs Apache peuvent être considérablement améliorées.

Comment envisager l'optimisation des performances dans la conception de classes C++ ? Comment envisager l'optimisation des performances dans la conception de classes C++ ? Jun 05, 2024 pm 12:28 PM

Les conseils pour améliorer les performances dans la conception de classes C++ incluent : éviter les copies inutiles, optimiser la disposition des données et utiliser constexpr. Cas pratique : Utiliser le pool d'objets pour optimiser la création et la destruction d'objets.

Échelle de traitement XML / RSS: techniques d'optimisation des performances Échelle de traitement XML / RSS: techniques d'optimisation des performances Apr 27, 2025 am 12:28 AM

Lors du traitement des données XML et RSS, vous pouvez optimiser les performances via les étapes suivantes: 1) Utilisez des analyseurs efficaces tels que LXML pour améliorer la vitesse d'analyse; 2) Utilisez des analyseurs de sax pour réduire l'utilisation de la mémoire; 3) Utiliser les expressions XPATH pour améliorer l'efficacité d'extraction des données; 4) Implémentez le traitement parallèle multi-processus pour améliorer la vitesse de traitement.

Analyse des questions fréquemment posées sur l'optimisation des performances PHP Analyse des questions fréquemment posées sur l'optimisation des performances PHP Jun 05, 2024 pm 05:10 PM

Améliorez les performances de PHP en permettant à OPCache de mettre en cache le code compilé. Utilisez un framework de mise en cache tel que Memcached pour stocker les données fréquemment utilisées. Réduisez les requêtes de base de données (par exemple en mettant en cache les résultats des requêtes). Optimisez le code (par exemple, utilisez des fonctions en ligne). Utilisez des outils d'analyse des performances tels que XHProf pour identifier les goulots d'étranglement des performances.

Yii 2.0 Dive profonde: réglage et optimisation des performances Yii 2.0 Dive profonde: réglage et optimisation des performances Apr 10, 2025 am 09:43 AM

Les stratégies pour améliorer les performances de l'application YII2.0 incluent: 1. Optimisation des requêtes de base de données, en utilisant QueryBuilder et ActiveRecord pour sélectionner des champs spécifiques et limiter les ensembles de résultats; 2. Stratégie de mise en cache, utilisation rationnelle des données, de la requête et du cache de page; 3. Optimisation au niveau du code, réduction de la création d'objets et utilisant des algorithmes efficaces. Grâce à ces méthodes, les performances des applications YII2.0 peuvent être considérablement améliorées.

Comment optimiser la disposition des structures de données en C? Comment optimiser la disposition des structures de données en C? Apr 28, 2025 pm 08:51 PM

L'optimisation de la disposition des structures de données en C peut être réalisée à travers les étapes suivantes: 1. Ajuster l'alignement de la mémoire et réduire le rembourrage, tels que le tri des membres de la structure par taille. 2. Améliorer la convivialité du cache et assembler des membres fréquemment visités ensemble. 3. Optimisez le tri des membres du struct et placez les membres les plus visités devant. 4. Redimensionner la structure afin qu'il s'agisse d'un multiple de lignes de cache pour réduire l'accès aux lignes croisées. Grâce à ces méthodes, les performances du programme et l'utilisation de la mémoire peuvent être considérablement améliorées.

Service d'optimisation des performances PHP Service d'optimisation des performances PHP May 18, 2025 am 12:07 AM

PhpapplicationsCanBeoptimizedByfocusingOnCodeeFeency, mise en cache, caches de base de données et ServerConfiguration.1)

See all articles