


[Base de données MySQL] Interprétation du chapitre 3 : Analyse des performances du serveur (Partie 2)
Laissez-moi soupirer d'émotion : DBA n'est vraiment pas couvert
3.3.3 Analyse des performances d'utilisation : limitée
3.4 Diagnostic des problèmes intermittents
Si le système s'arrête occasionnellement, ralentit les requêtes ou provoque des problèmes d'observation, essayez de ne pas recourir aux essais et aux erreurs pour résoudre le problème : le risque est élevé
3.4.1 Problème de requête unique ou problème de service
Utilisez SHOW GLOBAL STATUS
Fréquence plus élevée : 1 s/heure Exécutez cette commande pour obtenir des données. Le problème se produit via le compteur
Utilisez SHOW PROCESSLIST [Référence] Afficher quels threads sont en cours d'exécution
Recommandation : Utilisez d'abord les deux premières méthodes, qui sont peu coûteuses et collectent des données de manière interactive via de simples scripts shell ou exécutées à plusieurs reprises requêtes 3.4.2 Obtenir des données de diagnostic Problème intermittent, essayez de collecter autant de données que possible (pas seulement lorsque le problème survient) Clair : 1. Il y a façons de distinguer quand des problèmes surviennent : déclencheurs ; 2. Outils de collecte de données de diagnosticDéclencheur de diagnosticErreur : De nombreuses données de diagnostic sont collectées pendant la période où aucun problème ne se produit, ce qui est un perte de temps (cela n'est pas incompatible avec le précédent, lisez-le attentivement) Détection manquée : Lorsque le problème survient Aucune donnée n'a été capturée, une opportunité a été manquée, assurez-vous que le déclencheur peut véritablement identifier le problème avant démarrage de la collecte
Bons déclencheurs :
Trouvez-en qui fonctionnent bien avec les horaires normaux Comparez les indicateurs avec les seuils Choisissez un seuil approprié : assez élevé (pas déclenché lorsque c'est normal), pas trop élevé (à ne pas manquer lorsque des problèmes surviennent) Outil recommandé pt-stalk【 Référence] [2] Déclencheur, réglé sur une certaine condition pour enregistrer la fréquence de vérification du seuil des variables à surveillé et configuré Quel type de données sont collectéesDélai d'exécution : Temps de travail et temps d'attente
Collecter toutes les données qui peuvent être collecté dans le délai requis
La raison du problème inconnu : 1 , le serveur doit faire beaucoup de travail, ce qui entraîne une grande consommation de CPU 2 ; . En attente de libération des ressources
Collectez les données de diagnostic en utilisant différentes méthodes pour confirmer la raison :1 Rapport d'analyse : confirmez s'il y a trop de travail, outil : tcpdump surveille l'ouverture du mode de trafic TCP et. fermeture, journal des requêtes lent 2. Analyse d'attente : confirmer s'il y a un grand nombre d'attentes, informations de trace de la pile GDB, afficher la liste des processus, afficher l'état d'innodb pour observer les threads et l'état de la transactionInterpréter les données de résultatObjectif : 1. Si le problème s'est réellement produit ; 2. S'il y a un changement de saut évident
Outils :
oprofile utilise le compteur de performances (compteur de performances) fourni au niveau matériel du processeur pour nous aider à trouver le "coupable" qui occupe le processeur aux niveaux du processus, de la fonction et du code grâce à l'échantillonnage de comptage. Exemple [Référence]
La commande opreport est une méthode permettant d'afficher l'utilisation du processeur à partir des niveaux de processus et de fonction respectivementsamples | %| ----------------------------------------------------- 镜像内发生的采样次数 采样次数所占总采样次数的百分比 镜像名称
GDB :Dans le développement d'applications Linux, le débogueur le plus couramment utilisé est gdb (l'objet débogué est un fichier exécutable). Il peut définir des points d'arrêt dans le programme, afficher les valeurs des variables, et suivez le programme étape par étape Processus d'exécution (données, code source), affichez la mémoire, empilez les informations. L'utilisation de ces fonctions du débogueur permet de trouver facilement des erreurs non grammaticales dans le programme. [Référence] [Référence] Syntaxe et exemples
3.4.3 Un cas de diagnostic Problème de performances intermittent, avec une connaissance pertinente de MySQL, innodb, GNU/LinuxClair : 1. Quel est le problème, décrivez-le clairement ; 2. Quelles mesures ont été prises pour résoudre le problème ?
Démarrer : 1. Comprendre le comportement du serveur ; 2. Trier les paramètres d'état du serveur et configurer l'environnement logiciel et matériel (pt-summary pt-mysql -résumé)
Ne vous laissez pas distraire par diverses situations trop hors sujet Écrivez les questions sur des bouts de papier et vérifiez bien les rayer Est-ce une cause ou un résultat. ? ? ?Raisons possibles pour lesquelles les ressources sont devenues inefficaces :
1. Les ressources sont surutilisées et le solde est insuffisant ; 2. Les ressources ne sont pas correctement adaptées ; Ressources Dommages ou pannes
oprofile coûts d'utilisation des cycles CPU
Résumé :- Le moyen le plus efficace de définir les performances est le temps de réponse
Vous ne pouvez pas optimiser efficacement si vous ne pouvez pas le mesurer. Le travail d'optimisation des performances doit être basé sur une mesure du temps de réponse de haute qualité, complète et complète
Le Le meilleur point de départ pour la mesure est une application. Même si le problème réside dans la base de données sous-jacente, il est plus facile de trouver le problème avec de bonnes mesures
La plupart des systèmes ne peuvent pas mesurer complètement, et parfois les mesures avoir des résultats erronés. Trouvez des moyens de contourner certaines limitations et soyez conscient des défauts et des incertitudes de la méthode
Une mesure complète générera une grande quantité de données qui doivent être analysées, donc vous devez utiliser un profileur (meilleur outil)
Rapport de profilage : résume les informations, passe sous silence et jette beaucoup de détails, ne vous dira pas ce qui manque, ne peut pas être s'appuie totalement
Deux opérations chronophages : travailler ou attendre Presque le profileur ne peut mesurer que le temps passé au travail, donc attendre le partage est parfois un complément utile, surtout quand le. L'utilisation du processeur est faible mais le travail n'a jamais été terminé.
-
L'optimisation et l'amélioration sont deux choses différentes. Lorsque le coût de l'amélioration continue dépasse les avantages, l'optimisation doit être arrêtée
<.> - Faites attention à votre franchise, vos idées et vos décisions autant que possible. Basé sur les données
en un mot :Clarifiez d'abord le problème, choisir la technologie appropriée, faire bon usage des outils, être assez prudent, avoir une logique claire et s'y tenir, ne pas mettre les raisons et les résultats Confusion, ne pas apporter de modifications au système avec désinvolture avant de déterminer le problème
Articles connexes :[Base de données MySQL] Interprétation du chapitre 2 : Test de référence MySQL
[Base de données MySQL] Interprétation du chapitre 3 : Analyse des performances du serveur (Partie 1)
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.

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.

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.

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

Créez une base de données à l'aide de NAVICAT Premium: Connectez-vous au serveur de base de données et entrez les paramètres de connexion. Cliquez avec le bouton droit sur le serveur et sélectionnez Créer une base de données. Entrez le nom de la nouvelle base de données et le jeu de caractères spécifié et la collation. Connectez-vous à la nouvelle base de données et créez le tableau dans le navigateur d'objet. Cliquez avec le bouton droit sur le tableau et sélectionnez Insérer des données pour insérer les données.

La copie d'une table dans MySQL nécessite la création de nouvelles tables, l'insertion de données, la définition de clés étrangères, la copie des index, les déclencheurs, les procédures stockées et les fonctions. Les étapes spécifiques incluent: la création d'une nouvelle table avec la même structure. Insérez les données de la table d'origine dans une nouvelle table. Définissez la même contrainte de clé étrangère (si le tableau d'origine en a un). Créer le même index. Créez le même déclencheur (si le tableau d'origine en a un). Créez la même procédure ou fonction stockée (si la table d'origine est utilisée).

NAVICAT pour MARIADB ne peut pas afficher directement le mot de passe de la base de données car le mot de passe est stocké sous forme cryptée. Pour garantir la sécurité de la base de données, il existe trois façons de réinitialiser votre mot de passe: réinitialisez votre mot de passe via Navicat et définissez un mot de passe complexe. Affichez le fichier de configuration (non recommandé, haut risque). Utilisez des outils de ligne de commande système (non recommandés, vous devez être compétent dans les outils de ligne de commande).

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;
