Utilisez MySQL pour analyser les problèmes SQL chronophages
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;
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%'
Ou vous pouvez utiliser la commande suivante sans rouvrir la connexion :
show variables like '%long_query_time%'
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%';
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)
Si vous définissez long_query_time sur 3 secondes, alors cette instruction sera enregistrée.
Afficher le nombre de logs lents
show global status like '%slow_queries%'
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
参数含义 s: 表示按照何种方式排序 c:访问次数 l:锁定时间 r:返回记录 t:查询时间 al:平均锁定时间 t:返回前面多少条的数据 g:后面搭配一个正则表达式
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 :
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.
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’
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;
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
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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

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.

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

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;

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.

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
