Table des matières
Requête de journal lente
Qu'il soit activé et défini
Outil d'analyse des logs mysqldumpslow
Utiliser show profile pour l'analyse SQL
Journal global des requêtes
Maison base de données tutoriel mysql Utilisez MySQL pour analyser les problèmes SQL chronophages

Utilisez MySQL pour analyser les problèmes SQL chronophages

Sep 09, 2017 pm 02:03 PM
mysql 分析 问题


Requête de journal lente

La requête de journal lente de MySQL est un enregistrement de journal fourni par MySQL. Elle enregistre les instructions dont le temps de réponse dépasse le seuil dans MySql, en particulier SQL qui prend plus de temps. que la valeur long_query_time sera enregistrée dans le journal lent. La durée par défaut de long_query_time est 10, ce qui signifie exécuter plus de 10 instructions.

Par exemple, si un SQL est exécuté pendant plus de 5 secondes, même s'il s'agit d'un SQL lent, MySQL enregistrera le SQL qui dépasse 5 secondes. Nous pouvons effectuer une analyse complète en conjonction avec l'explication.

Par défaut, la base de données MySQL n'active pas les journaux de requêtes lents et nous devons définir ce paramètre manuellement. Bien entendu, s'il n'est pas requis pour le réglage, il n'est généralement pas recommandé d'activer ce paramètre, car une journalisation lente aura plus ou moins un certain impact sur les performances.

Qu'il soit activé et défini

#查看是否开启show variables like '%slow_query_log%';#开启set global slow_query_log = 1;
Copier après la connexion

L'utilisation de set global slow_query_log=1 pour activer le journal des requêtes lentes ne prendra effet que sur la base de données actuelle et deviendra invalide si MySQL est redémarré. Si vous souhaitez qu'il prenne effet de manière permanente, vous devez modifier le fichier de configuration my.cnf.

Notez qu'après avoir défini le temps de seuil de requête lente, vous ne verrez peut-être pas la valeur changer, c'est-à-dire qu'elle ne prendra pas effet. Dans ce cas, vous devez vous reconnecter ou ouvrir une nouvelle session pour voir la modification. valeur.

show variables like '%long_query_time%'
Copier après la connexion
Copier après la connexion

Ou vous pouvez utiliser la commande suivante sans rouvrir la connexion :

show variables like '%long_query_time%'
Copier après la connexion
Copier après la connexion

Quel SQL sera enregistré par journalisation lente, qui est contrôlée par long_query_time Par défaut, long_query_time Le. la valeur est de 10 secondes, commande :

show variables like '%long_query_time%';
Copier après la connexion

Si le temps d'exécution est exactement égal à long_query_time, il ne sera pas enregistré. En d'autres termes, dans MySQL, il est jugé supérieur à long_query_time, et non supérieur ou égal à.

Vous pouvez utiliser l'instruction suivante pour la tester

SELECT sleep(4)
Copier après la connexion

Si vous définissez long_query_time sur 3 secondes, alors cette instruction sera enregistrée.

Utilisez MySQL pour analyser les problèmes SQL chronophages

Afficher le nombre de logs lents

show global status like '%slow_queries%'
Copier après la connexion

Outil d'analyse des logs mysqldumpslow

Dans un environnement de production, si vous souhaitez manuellement analyser les journaux, trouver et analyser SQL est évidemment une tâche laborieuse. MySql fournit l'outil d'analyse des journaux mysqldumpslow.

Par exemple :

#得到返回记录集最多的10个SQL
Mysqldumpslow –s r –t 10 D:\Program Files\mysql\data\DESKTOP-VN2D5OU-slow.log#得到访问次数最多的10个SQL
Mysqldumpslow –s c –t 10 D:\Program Files\mysql\data\DESKTOP-VN2D5OU-slow.log#得到按照时间排序的前10条里面含有左连接的查询
Mysqldumpslow –s t –t 10 –g “left join” D:\Program Files\mysql\data\DESKTOP-VN2D5OU-slow.log#另外建议在使用这些命令时结合|和more使用,否则可能出现爆破情况
Mysqldumpslow –s r –t 10 D:\Program Files\mysql\data\DESKTOP-VN2D5OU-slow.log|more
Copier après la connexion
参数含义
s: 表示按照何种方式排序
c:访问次数
l:锁定时间
r:返回记录
t:查询时间
al:平均锁定时间
t:返回前面多少条的数据
g:后面搭配一个正则表达式
Copier après la connexion

Utiliser show profile pour l'analyse SQL

La commande show profile peut analyser la consommation de ressources de l'exécution de l'instruction dans la session en cours. Utilisé pour trouver les goulots d'étranglement SQL qui prennent beaucoup de temps. Il est désactivé par défaut et enregistre les résultats des 15 dernières exécutions.

Vérifiez si elle est activée (afficher les variables telles que « profilage » ;)
Activez la fonction (définissez le profilage = on ;)

Une fois activée, vous pouvez enregistrer l'exécution ultérieure de SQL. Visualisez ensuite les résultats via show profiles :

Utilisez MySQL pour analyser les problèmes SQL chronophages

Analysez plus en détail l'exécution d'une certaine instruction SQL via la commande (show profile cpu, block io for query 3;), par exemple , l'analyse suivante 3 No. Situation SQL.

Utilisez MySQL pour analyser les problèmes SQL chronophages

Quelques paramètres derrière Afficher le profil :

  • Tous : Afficher toutes les informations générales

  • Bloc io : afficher la surcharge liée au bloc IO

  • Commutateurs de contexte : surcharge liée au changement de contexte

  • Cpu : afficher la surcharge liée au processeur

  • Mémoire : Afficher les frais généraux liés à la mémoire

  • Source : Afficher les informations de frais généraux liées à source_function, source_file, source_line

Journal global des requêtes

(Ne l'activez jamais dans un environnement de production pour afficher toutes les instructions SQL exécutées)

Commande Set :

set global general_log = 1;#以表的形式输出set global log_output = ‘TABLE’
Copier après la connexion

Après cela, mysql exécute le L'instruction SQL sera enregistrée dans la table mysql.genearl_log, qui peut être visualisée avec la commande suivante :

select * from mysql.general_log;
Copier après la connexion

Elle peut également être configurée dans le fichier de configuration et définie comme suit :

#开启General_log = 1#记录日志文件的路径General_log_file = D://path/logfile#输出格式Log_output=file
Copier après la connexion

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

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.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

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)

La relation entre l'utilisateur de MySQL et la base de données La relation entre l'utilisateur de MySQL et la base de données Apr 08, 2025 pm 07:15 PM

Dans la base de données MySQL, la relation entre l'utilisateur et la base de données est définie par les autorisations et les tables. L'utilisateur a un nom d'utilisateur et un mot de passe pour accéder à la base de données. Les autorisations sont accordées par la commande Grant, tandis que le tableau est créé par la commande Create Table. Pour établir une relation entre un utilisateur et une base de données, vous devez créer une base de données, créer un utilisateur, puis accorder des autorisations.

Intégration RDS MySQL avec Redshift Zero ETL Intégration RDS MySQL avec Redshift Zero ETL Apr 08, 2025 pm 07:06 PM

Simplification de l'intégration des données: AmazonrDSMysQL et l'intégration Zero ETL de Redshift, l'intégration des données est au cœur d'une organisation basée sur les données. Les processus traditionnels ETL (extrait, converti, charge) sont complexes et prennent du temps, en particulier lors de l'intégration de bases de données (telles que AmazonrDSMysQL) avec des entrepôts de données (tels que Redshift). Cependant, AWS fournit des solutions d'intégration ETL Zero qui ont complètement changé cette situation, fournissant une solution simplifiée et à temps proche pour la migration des données de RDSMySQL à Redshift. Cet article plongera dans l'intégration RDSMYSQL ZERO ETL avec Redshift, expliquant comment il fonctionne et les avantages qu'il apporte aux ingénieurs de données et aux développeurs.

MySQL: la facilité de gestion des données pour les débutants MySQL: la facilité de gestion des données pour les débutants Apr 09, 2025 am 12:07 AM

MySQL convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.

Comment remplir le nom d'utilisateur MySQL et le mot de passe Comment remplir le nom d'utilisateur MySQL et le mot de passe Apr 08, 2025 pm 07:09 PM

Pour remplir le nom d'utilisateur et le mot de passe MySQL: 1. Déterminez le nom d'utilisateur et le mot de passe; 2. Connectez-vous à la base de données; 3. Utilisez le nom d'utilisateur et le mot de passe pour exécuter des requêtes et des commandes.

L'optimisation des requêtes dans MySQL est essentielle pour améliorer les performances de la base de données, en particulier lorsqu'elle traite avec de grands ensembles de données L'optimisation des requêtes dans MySQL est essentielle pour améliorer les performances de la base de données, en particulier lorsqu'elle traite avec de grands ensembles de données Apr 08, 2025 pm 07:12 PM

1. Utilisez l'index correct pour accélérer la récupération des données en réduisant la quantité de données numérisées SELECT * FROMMLOYEESEESHWHERELAST_NAME = 'SMITH'; Si vous recherchez plusieurs fois une colonne d'une table, créez un index pour cette colonne. If you or your app needs data from multiple columns according to the criteria, create a composite index 2. Avoid select * only those required columns, if you select all unwanted columns, this will only consume more server memory and cause the server to slow down at high load or frequency times For example, your table contains columns such as created_at and updated_at and timestamps, and then avoid selecting * because they do not require inefficient query se

Comment voir Mysql Comment voir Mysql Apr 08, 2025 pm 07:21 PM

Affichez la base de données MySQL avec la commande suivante: Connectez-vous au serveur: MySQL -U Username -P mot de passe Exécuter les bases de données Afficher les bases de données; Commande pour obtenir toutes les bases de données existantes Sélectionnez la base de données: utilisez le nom de la base de données; Tableau de vue: afficher des tables; Afficher la structure de la table: décrire le nom du tableau; Afficher les données: sélectionnez * dans le nom du tableau;

Puis-je récupérer le mot de passe de la base de données dans Navicat? Puis-je récupérer le mot de passe de la base de données dans Navicat? Apr 08, 2025 pm 09:51 PM

Navicat lui-même ne stocke pas le mot de passe de la base de données et ne peut récupérer que le mot de passe chiffré. Solution: 1. Vérifiez le gestionnaire de mots de passe; 2. Vérifiez la fonction "Remember Motway" de Navicat; 3. Réinitialisez le mot de passe de la base de données; 4. Contactez l'administrateur de la base de données.

Comprendre les propriétés acides: les piliers d'une base de données fiable Comprendre les propriétés acides: les piliers d'une base de données fiable Apr 08, 2025 pm 06:33 PM

Une explication détaillée des attributs d'acide de base de données Les attributs acides sont un ensemble de règles pour garantir la fiabilité et la cohérence des transactions de base de données. Ils définissent comment les systèmes de bases de données gérent les transactions et garantissent l'intégrité et la précision des données même en cas de plantages système, d'interruptions d'alimentation ou de plusieurs utilisateurs d'accès simultanément. Présentation de l'attribut acide Atomicité: une transaction est considérée comme une unité indivisible. Toute pièce échoue, la transaction entière est reculée et la base de données ne conserve aucune modification. Par exemple, si un transfert bancaire est déduit d'un compte mais pas augmenté à un autre, toute l'opération est révoquée. BeginTransaction; UpdateAccountSsetBalance = Balance-100Wh

See all articles