Table des matières
3.1 Introduction
.
日志部分内容简介:
利用自带的慢查询日志分析工具:mysqldumpslow
补充:数据库初始安装有三个基本库
Maison base de données tutoriel mysql [Base de données MySQL] Interprétation du chapitre 3 : Analyse des performances du serveur (Partie 1)

[Base de données MySQL] Interprétation du chapitre 3 : Analyse des performances du serveur (Partie 1)

Aug 07, 2018 pm 01:39 PM
mysql

Avant-propos :

Gardez l'esprit de la tasse vide, utilisez l'analyse des performances, concentrez-vous sur la mesure du temps passé par le serveur, réfléchissez à 1. Comment confirmer si le serveur a atteint l'état de performances optimal , 2. Pourquoi les déclarations ne sont-elles pas assez rapides ? Diagnostiquer certains défauts intermittents et difficiles décrits par les utilisateurs comme des « pauses, accumulations et blocages »

Ensuite, nous présenterons quelques outils et techniques pour optimiser les performances du machine entière et optimiser l'exécution d'une seule instruction Accélérer, diagnostiquer et résoudre les problèmes difficiles à observer, montrer comment mesurer le système et générer des rapports de profilage, et comment analyser la pile système

3.1 Introduction

Performance : requise pour accomplir une certaine tâche Mesure du temps, en d'autres termes, la performance est le temps de réponse

Débit : requête de données par unité de temps (inverse de la définition des performances)

Première étape :

Déterminez où va le temps, où est-il, où est le temps passé

Si la réponse n'est pas trouvée grâce à la mesure, la méthode de mesure est erronée ou pas assez parfaite,

Mesurez uniquement les activités qui doivent être optimisées

Ne démarrez pas ou n'arrêtez pas les tests au mauvais moment. Ce qui est mesuré, ce sont les informations agrégées plutôt que l'activité cible elle-même

Besoin de localiser et de localiser. optimiser les sous-tâches

Principe : si vous ne pouvez pas le mesurer, vous ne pouvez pas optimiser efficacement

3.1.1 Optimiser grâce au profilage des performances

.

Profilage des performances : la principale méthode de mesure et d'analyse du temps passé

1. Mesurer les tâches Temps passé 2. Statistiques et tri des résultats (priorité absolue)

Des tâches similaires peuvent être regroupés et résumés, et les résultats requis peuvent être obtenus via le rapport d'analyse des performances ; le rapport listera toutes les tâches et enregistrera une tâche par ligne :

Nom de la tâche, temps d'exécution, temps de consommation, temps d'exécution moyen , pourcentage d'exécution du temps total ; trié par ordre décroissant par temps de consommation des tâches

Type d'analyse des performances :

Analyse basée sur le temps d'exécution : quelle tâche prend le temps d'exécution le plus long

Analyse basée sur l'attente : Déterminez où la tâche est bloquée le plus longtemps

3.1.2 Comprendre l'analyse des performances

Informations manquantes mais importantes dans l'analyse des performances :

1 . Les requêtes qui méritent d'être optimisées

Les requêtes qui représentent une petite proportion du temps de réponse total ne méritent pas d'être optimisées ; si le coût est supérieur au bénéfice, l'optimisation doit être arrêtée

2.

Même celles qui ne sont pas explicitement optimisées doivent être optimisées, comme les tâches qui sont exécutées rarement mais qui sont extrêmement lentes à chaque fois

3. Inconnues

Temps perdu : Le. différence entre le temps total de la tâche et le temps réel mesuré Même s'il n'est pas trouvé, vous devez faire attention à la possibilité de tels problèmes

4. Détails cachés

Impossible d'afficher. la distribution de tous les temps de réponse, plus d'informations, des histogrammes, des pourcentages, des écarts types, des indices d'écart

5. L'analyse interactive ne peut pas être effectuée aux niveaux supérieurs de la pile

3.2 Analyse des performances des applications : descendant

Facteurs d'influence des goulots d'étranglement des performances :

1. Ressources externes, appelant des services Web externes ou des moteurs de recherche

2. et analyser un très gros fichier xml

3. Effectuer des opérations coûteuses en boucle : Abuser de la régularité

4. Utiliser des algorithmes inefficaces : algorithme de recherche par force brute

Recommandation : Nouveaux projets devrait envisager d'inclure du code de profilage des performances

3.2.1 Mesurer l'application PHP : vide

3.3 Profilage des requêtes MySQL

3.3.1 Profilage du serveur La charge

répartit la requête MySQL dans le fichier journal :

1. Journal de requête lent : faible surcharge, haute précision, grand espace disque, activation à long terme, veuillez faire attention au déploiement de l'outil de rotation des journaux, en collectant uniquement la charge Allumez-le simplement pendant la période d'échantillonnage, au niveau de la microseconde après 5,1

2. Journal général, qui est enregistré lorsque la requête de requête atteint le serveur, hors temps de réponse et plan d'exécution

Analyser le journal des requêtes

De haut en bas, générez d'abord un rapport d'analyse (pt-query-digest) et affichez les parties particulièrement préoccupantes

3.3.2 Analyser une seule requête

Réfléchissez à la raison pour laquelle cela prend autant de temps, comment optimiser

Après avoir utilisé SHOW PROFILE :MySQL5.1

Affichage : afficher les variables comme "%pro%";[Source]

Désactivé par défaut, activé : set profiling =1 ; puis exécutez l'instruction sur le serveur (désactivez set profiling=off;)

Syntaxe :

SHOW PROFILE [type [, type] ... ]  
    [FOR QUERY n]  
    [LIMIT row_count [OFFSET offset]]  
  
type:  
    ALL                --显示所有的开销信息  
  | BLOCK IO           --显示块IO相关开销  
  | CONTEXT SWITCHES   --上下文切换相关开销  
  | CPU                --显示CPU相关开销信息  
  | IPC                --显示发送和接收相关开销信息  
  | MEMORY             --显示内存相关开销信息  
  | PAGE FAULTS        --显示页面错误相关开销信息  
  | SOURCE             --显示和Source_function,Source_file,Source_line相关的开销信息  
  | SWAPS              --显示交换次数相关开销的信息
Copier après la connexion
实质是这些开销信息被记录到information_schema.profiling表
Copier après la connexion
show profiles;查看
show profile for query 2; 获取指定查询的开销(第二条查询开销明细)
show profile cpu for query 2 ;查看特定部分的开销,如下为CPU部分的开销 
show profile block io,cpu for query 2;  同时查看不同资源开销
Copier après la connexion
Utilisez SHOW STATUS : compteur

Global affiche l'état global, en fonction d'un certain niveau de session de connexion, l'oscilloscope doit faire attention au compteur

pour afficher le fréquence d'activité, couramment utilisée : compteur de handles, fichier temporaire, compteur de tables

Les tables temporaires seront créées et exploitées grâce à des handles (références, pointeurs ? ) accédez à cette table temporaire, affectant le numéro correspondant dans le résultat de l'affichage de l'état

Utilisez le journal des requêtes lentes : [Source] [Source]

Le temps de réponse dans MySQL

dépassera-t-il le seuil L'instruction long_query_time est enregistrée dans le journal des requêtes lentes (le journal peut être écrit dans un fichier ou une table de base de données. Si les exigences de performances sont élevées, il est recommandé d'écrire un fichier. La valeur par défaut est de 10 s). à activer manuellement

pour afficher :

 

[Base de données MySQL] Interprétation du chapitre 3 : Analyse des performances du serveur (Partie 1)

(1)slow_query_log的值为ON为开启慢查询日志,OFF则为关闭慢查询日志。

(2)slow_query_log_file 的值是记录的慢查询日志到文件中(注意:默认名为主机名.log,慢查询日志是否写入指定文件中,需要指定慢查询的输出日志格式为文件,相关命令为:show variables like ‘%log_output%’;去查看输出的格式)。

(3)long_query_time 指定了慢查询的阈值,即如果执行语句的时间超过该阈值则为慢查询语句,默认值为10秒。

(4)log_queries_not_using_indexes 如果值设置为ON,则会记录所有没有利用索引的查询(注意:如果只是将log_queries_not_using_indexes设置为ON,而将slow_query_log设置为OFF,此时该设置也不会生效,即该设置生效的前提是slow_query_log的值设置为ON),一般在性能调优的时候会暂时开启,开启后使用full index scan的sql也会被记录到慢查询日志。

//上述命令只对当前生效,当MySQL重启失效,如果要永久生效,需要配置my.cnf

查看输出格式:文件?表show variables like ‘%log_output%’;

开启通用日志查询: set global general_log=on;

关闭通用日志查询: set globalgeneral_log=off;

设置通用日志输出为表方式: set globallog_output=’TABLE’;

设置通用日志输出为文件方式: set globallog_output=’FILE’;

设置通用日志输出为表和文件方式:set global log_output=’FILE,TABLE’;

查询慢查询语句的个数:show global status like ‘%slow%’;
Copier après la connexion

日志部分内容简介:

哪条语句导致慢查询(sql_text),该慢查询语句的查询时间(query_time),锁表时间(Lock_time),以及扫描过的行数(rows_examined)等信息。

利用自带的慢查询日志分析工具:mysqldumpslow

perl mysqldumpslow –s c –t 10 slow-query.log

-s 表示按何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序,ac、at、al、ar,表示相应的倒叙;-t 表示top的意思,后面跟着的数据表示返回前面多少条;-g 后面可以写正则表达式匹配,大小写不敏感。

使用Performance Schema:【源】【源】

监视MySQL服务器,收集性能参数,且表的存储引擎PERFORMANCE_SCHEMA,低耗能

本地服务器,表是内存表,表内容在服务器启动时重新填充,关闭时丢弃,更改不会被复制或写入二进制日志

特性:

性能方案配置可被动态的执行SQL修改,立即影响到数据收集

监控服务事件:事件是服务做并被感知到的任何事,时间信息可被收集

数据库性能方案,提供对运行时数据库服务进行内部检查的方式,关注性能数据

特定于一个数据库服务,数据库表关联到数据服务,修改不会被备份也不写进二进制日志

存储引擎用“感知点”收集事件数据,且存储在performance_schema数据库,可通过select语句进行查询

补充:数据库初始安装有三个基本库

mysql

    包含权限配置,事件,存储引擎状态,主从信息,日志,时区信息,用户权限配置等

information_schema

    对数据库元数据的抽象分析,由此提供了SQL语句方式来查询数据库运行时状态,每次对information_schema的查询都产生对metadata的互斥访问,影响其他数据库的访问性能。

performance_schema

    内存型数据库,使用performance_schema 存储引擎,通过事件机制将mysql服务的运行时状态采集并存储在performace_schema数据库。注意,两个单词之间用下划线连接时,表示performance_schema是一个数据库;用空格分开时,表示一个数据库性能方案,也表示一个存储引擎。

 相关文章:

【MySQL数据库】第三章解读:服务器性能剖析 (下)

【MySQL数据库】第二章解读: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

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.

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)

MySQL: Concepts simples pour l'apprentissage facile MySQL: Concepts simples pour l'apprentissage facile Apr 10, 2025 am 09:29 AM

MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

Comment ouvrir phpmyadmin Comment ouvrir phpmyadmin Apr 10, 2025 pm 10:51 PM

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

MySQL: une introduction à la base de données la plus populaire au monde MySQL: une introduction à la base de données la plus populaire au monde Apr 12, 2025 am 12:18 AM

MySQL est un système de gestion de la base de données relationnel open source, principalement utilisé pour stocker et récupérer les données rapidement et de manière fiable. Son principe de travail comprend les demandes des clients, la résolution de requête, l'exécution des requêtes et les résultats de retour. Des exemples d'utilisation comprennent la création de tables, l'insertion et la question des données et les fonctionnalités avancées telles que les opérations de jointure. Les erreurs communes impliquent la syntaxe SQL, les types de données et les autorisations, et les suggestions d'optimisation incluent l'utilisation d'index, les requêtes optimisées et la partition de tables.

Pourquoi utiliser MySQL? Avantages et avantages Pourquoi utiliser MySQL? Avantages et avantages Apr 12, 2025 am 12:17 AM

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

Comment utiliser un seul fileté redis Comment utiliser un seul fileté redis Apr 10, 2025 pm 07:12 PM

Redis utilise une architecture filetée unique pour fournir des performances élevées, une simplicité et une cohérence. Il utilise le multiplexage d'E / S, les boucles d'événements, les E / S non bloquantes et la mémoire partagée pour améliorer la concurrence, mais avec des limites de limitations de concurrence, un point d'échec unique et inadapté aux charges de travail à forte intensité d'écriture.

MySQL et SQL: Compétences essentielles pour les développeurs MySQL et SQL: Compétences essentielles pour les développeurs Apr 10, 2025 am 09:30 AM

MySQL et SQL sont des compétences essentielles pour les développeurs. 1.MySQL est un système de gestion de base de données relationnel open source, et SQL est le langage standard utilisé pour gérer et exploiter des bases de données. 2.MySQL prend en charge plusieurs moteurs de stockage via des fonctions de stockage et de récupération de données efficaces, et SQL termine des opérations de données complexes via des instructions simples. 3. Les exemples d'utilisation comprennent les requêtes de base et les requêtes avancées, telles que le filtrage et le tri par condition. 4. Les erreurs courantes incluent les erreurs de syntaxe et les problèmes de performances, qui peuvent être optimisées en vérifiant les instructions SQL et en utilisant des commandes Explication. 5. Les techniques d'optimisation des performances incluent l'utilisation d'index, d'éviter la numérisation complète de la table, d'optimiser les opérations de jointure et d'améliorer la lisibilité du code.

Place de MySQL: bases de données et programmation Place de MySQL: bases de données et programmation Apr 13, 2025 am 12:18 AM

La position de MySQL dans les bases de données et la programmation est très importante. Il s'agit d'un système de gestion de base de données relationnel open source qui est largement utilisé dans divers scénarios d'application. 1) MySQL fournit des fonctions efficaces de stockage de données, d'organisation et de récupération, en prenant en charge les systèmes Web, mobiles et de niveau d'entreprise. 2) Il utilise une architecture client-serveur, prend en charge plusieurs moteurs de stockage et optimisation d'index. 3) Les usages de base incluent la création de tables et l'insertion de données, et les usages avancés impliquent des jointures multiples et des requêtes complexes. 4) Des questions fréquemment posées telles que les erreurs de syntaxe SQL et les problèmes de performances peuvent être déboguées via la commande Explication et le journal de requête lente. 5) Les méthodes d'optimisation des performances comprennent l'utilisation rationnelle des indices, la requête optimisée et l'utilisation des caches. Les meilleures pratiques incluent l'utilisation des transactions et des acteurs préparés

Moniteur Disd Droplet avec service d'exportateur Redis Moniteur Disd Droplet avec service d'exportateur Redis Apr 10, 2025 pm 01:36 PM

La surveillance efficace des bases de données Redis est essentielle pour maintenir des performances optimales, identifier les goulots d'étranglement potentiels et assurer la fiabilité globale du système. Le service Redis Exporter est un utilitaire puissant conçu pour surveiller les bases de données Redis à l'aide de Prometheus. Ce didacticiel vous guidera à travers la configuration et la configuration complètes du service Redis Exportateur, en vous garantissant de créer des solutions de surveillance de manière transparente. En étudiant ce tutoriel, vous réaliserez les paramètres de surveillance entièrement opérationnels

See all articles