Maison  >  Article  >  développement back-end  >  Comment améliorer les performances de MySQL avec Query Time Analyzer

Comment améliorer les performances de MySQL avec Query Time Analyzer

王林
王林original
2023-05-11 09:25:551219parcourir

MySQL est un système de gestion de bases de données relationnelles largement utilisé. En raison de ses hautes performances, de son évolutivité et de sa nature open source, il est devenu le premier choix de nombreuses entreprises et particuliers. Cependant, à mesure que la quantité de données et la complexité des données continuent d'augmenter, des problèmes de performances de MySQL commencent à apparaître.

L'un des problèmes de performances importants est le temps de requête. Le temps de requête fait référence au temps nécessaire pour une requête MySQL. Plus le temps de requête est court, plus les performances de MySQL sont élevées et la capacité à traiter davantage de requêtes de requête. Pour résoudre ce problème, nous pouvons améliorer les performances de MySQL grâce à l'analyseur de temps de requête.

Qu'est-ce que l'analyseur de temps de requête ?
Query Time Analyzer est un outil d'analyse des performances fourni par MySQL, qui peut aider les utilisateurs à analyser le temps d'exécution des instructions de requête SQL, à trouver des requêtes avec des temps d'exécution longs, puis à optimiser les requêtes correspondantes. L'analyseur de temps de requête fournit principalement deux méthodes d'analyse :

  1. Méthode Explain : lors de l'exécution de cette méthode, MySQL simulera l'exécution de l'instruction de requête et affichera le plan d'exécution correspondant, y compris les tables, les index, le nombre de lignes analysées et le tri. méthodes impliquées dans la requête wait. Selon le plan d'exécution, l'efficacité d'exécution de l'instruction de requête SQL peut être jugée et d'éventuels problèmes peuvent être détectés, tels qu'un trop grand nombre d'analyses de tables, un manque d'index, etc.
  2. Méthode de profilage : lors de l'exécution de cette méthode, MySQL enregistrera en détail le processus d'exécution de l'instruction de requête SQL, y compris le temps d'exécution, le nombre de lignes analysées, la méthode de tri, l'utilisation de l'index, etc. Les utilisateurs peuvent découvrir les goulots d'étranglement des performances sur la base des données enregistrées et optimiser les requêtes correspondantes.

Comment améliorer les performances de MySQL à l'aide de Query Time Analyzer ?
Ce qui suit décrit comment utiliser l'analyseur de temps de requête pour améliorer les performances de MySQL pour les deux méthodes d'analyseur de temps de requête.

  1. Méthode Explain
    (1) Utilisez Explain pour analyser le plan d'exécution de l'instruction de requête SQL
    Dans MySQL, vous pouvez utiliser le mot-clé Explain pour interroger le plan d'exécution de l'instruction de requête SQL :

Expliquez select * from table which id=1;

L'exécution de la commande ci-dessus affichera le plan d'exécution de la requête actuelle, par exemple :

explain select * from tablewhere id=1;
id select_type table partitions type possible_keys key key_len ref rows filtered Ex tra
1 SIMPLE table NULL ref PRIMARY PRIMARY 4 const 1 100.0 Utilisation de l'index

Parmi eux, id représente le numéro de séquence de chaque opération dans le plan d'exécution ; select_type représente le type de l'opération en cours ; table représente le nom de table du type d'opération ; l'index qui peut être utilisé ; key représente l'index final sélectionné ; key_len représente la longueur de l'index ; ref représente les colonnes utilisées dans l'index ; résultats de la requête ; Extra représente d’autres informations connexes.

Sur la base du contenu de sortie ci-dessus, vous pouvez juger de l'efficacité d'exécution des instructions de requête SQL et identifier les problèmes possibles, tels qu'un trop grand nombre d'analyses de tables, un manque d'index, etc.

(2) Utiliser des instructions d'optimisation d'index
Sur la base de l'analyseur de temps de requête de la méthode Explain, vous pouvez également utiliser des instructions d'optimisation d'index pour optimiser le plan d'exécution des instructions de requête SQL. est le suivant :

ALTER TABLE table_name ADD INDEX index_name (colonnes);

Par exemple :

alter table table add index (id);

Execute Après cette instruction, un index sera ajouté au champ id de la table, permettant à l'instruction de requête de localiser plus rapidement les enregistrements qui remplissent les conditions lors de la requête.

  1. Méthode de profilage
    (1) Activez la fonction de profilage
    Vous pouvez activer la fonction de profilage en définissant les paramètres du serveur MYSQL. Les opérations spécifiques sont les suivantes :
  2. Définir la méthode de stockage de la fonction Profiling
    Dans le fichier de configuration MYSQL, ajoutez le contenu suivant :

[mysqld]#🎜 🎜#

L'activation d'aucun indiquera qu'il n'est pas activé lorsque SHOW PROFILES

Vous ne pouvez voir les instructions SQL exécutées que lorsque SHOW PROFILES lorsque eva, snapshot ou all sont activés

#🎜🎜 #eva : enregistre les informations SQL à la fin de la requête ; instantané : enregistre régulièrement les informations SQL ; tout : enregistre les informations SQL à tout moment

log : stocke les journaux SQL dans l'erreur par défaut fichier journal ; fichier :/usr/local/mysql/var/data/mylog.log : stocke les journaux SQL dans le fichier spécifié

profiling=eva

profiling_history_size=20

# 🎜🎜#Le code ci-dessus indique que la méthode de stockage eva est activée et que le nombre maximum d'enregistrements historiques enregistrés pour les informations SQL est de 20.

Activer la fonction de profilage

Dans le client MYSQL, exécutez la commande suivante pour activer la fonction de profilage :

  1. set profiling = 1;
Ou définissez le délai d'attente :

set profiling = 1; set profiling_history_size=20; set profiling_history_size=1000000;

Dans des circonstances normales, pendant l'exécution Instructions SQL, le fichier journal de profilage surveillera la capacité occupée. Une fois la limite de capacité dépassée, MYSQL arrêtera l'enregistrement.

(2) Afficher le journal de profilage

Une fois le processus de profilage terminé, vous pouvez afficher le journal de profilage via la commande suivante :

show profiles;#🎜 🎜#
Cette commande affichera les informations de profilage de toutes les instructions SQL exécutées, y compris le temps d'exécution de l'instruction SQL, le nombre de lignes analysées, la méthode de tri, l'utilisation de l'index, etc. En analysant cet enregistrement, vous pouvez découvrir où se situe le goulot d'étranglement des performances de MySQL et l'optimiser en conséquence.

Résumé

Grâce à l'analyseur de temps de requête, vous pouvez pleinement comprendre le processus d'exécution et les goulots d'étranglement des performances des instructions de requête MySQL, ce qui permet d'optimiser les instructions de requête SQL et d'améliorer les performances de MySQL. Dans les applications pratiques, il est nécessaire d'adapter le plan d'analyse du temps de requête correspondant en fonction de conditions commerciales spécifiques afin de mieux exercer l'effet de l'outil d'analyse.

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:
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