Inhaltsverzeichnis
3.1 Einführung
1. Externe Ressourcen, Aufruf externer Webdienste oder Suchmaschinen
3.3.1 Profilierung des Servers Die Last
verteilt die MySQL-Abfrageprotokolldatei:
1. Langsames Abfrageprotokoll: geringer Overhead, hohe Genauigkeit, großer Speicherplatz, lange geöffnet, achten Sie darauf, das Protokollrotationstool bereitzustellen, nur die Last zu erfassen. Schalten Sie es einfach ein während des Abtastzeitraums auf Mikrosekundenebene nach 5.1; 2. Allgemeines Protokoll, das aufgezeichnet wird, wenn die Abfrageanforderung den Server erreicht, ohne Antwortzeit und Ausführungsplan
Denken Sie darüber nach warum es so lange dauert, wie man optimiert
Ansicht: Variablen wie „%pro%“ anzeigen;[Quelle]
erstellt eine temporäre Tabelle über die Handle-Operation (Referenz, Zeiger? ) Greifen Sie auf diese temporäre Tabelle zu und wirken Sie sich auf die entsprechende Nummer im Ergebnis der Statusanzeige aus
zum Anzeigen von:
日志部分内容简介:
利用自带的慢查询日志分析工具:mysqldumpslow
补充:数据库初始安装有三个基本库
Heim Datenbank MySQL-Tutorial [MySQL-Datenbank] Interpretation von Kapitel 3: Serverleistungsanalyse (Teil 1)

[MySQL-Datenbank] Interpretation von Kapitel 3: Serverleistungsanalyse (Teil 1)

Aug 07, 2018 pm 01:39 PM
mysql

Vorwort:

Behalten Sie den Geist der leeren Tasse bei, verwenden Sie Leistungsanalysen, konzentrieren Sie sich darauf, zu messen, wo die Zeit des Servers verbracht wird, und denken Sie darüber nach: 1. Wie kann bestätigt werden, ob der Server den optimalen Leistungszustand erreicht hat? , 2. Warum werden einige zeitweilige und schwierige Fehler, die von Benutzern als „Pausen, Ansammlungen und Steckenbleiben“ beschrieben werden, nicht schnell genug diagnostiziert?

Als Nächstes stellen wir einige Tools und Techniken vor, um die Leistung zu optimieren gesamte Maschine und optimieren Sie die Ausführung einer einzelnen Anweisung. Beschleunigen Sie, diagnostizieren und lösen Sie Probleme, die schwer zu beobachten sind, zeigen Sie, wie Sie das System messen und Profilierungsberichte erstellen und wie Sie den Systemstapel analysieren

3.1 Einführung

Leistung: erforderlich, um eine bestimmte Aufgabe abzuschließen. Zeitmessung, mit anderen Worten: Leistung ist Antwortzeit

Durchsatz: Daten pro Zeiteinheit abfragen (Kehrwert der Leistungsdefinition)

Schritt eins : Finden Sie heraus, wohin die Zeit geht. Wo ist sie, wo ist die aufgewendete Zeit?

Wenn die Antwort nicht durch Messung gefunden wird, ist die Messmethode falsch oder nicht perfekt genug, Messen Sie nur die Aktivitäten, die optimiert werden müssen.

Starten oder beenden Sie den Test nicht zum falschen Zeitpunkt. Es werden die aggregierten Informationen und nicht die Zielaktivität selbst gemessen Teilaufgaben optimieren

Grundsatz: Wer es nicht messen kann, kann nicht effektiv optimieren

3.1.1 Durch Leistungsprofilierung optimieren

Leistungsprofilierung: die wichtigste Methode zum Messen und Analysieren des Zeitaufwands

1. Messen der für Aufgaben aufgewendeten Zeit 2. Statistik und Sortieren der Ergebnisse (höchste Priorität)

Ähnliche Aufgaben können gruppiert und zusammengefasst werden, und die erforderlichen Ergebnisse können über den Leistungsanalysebericht erhalten werden; der Bericht listet alle Aufgaben auf und zeichnet eine Aufgabe pro Zeile auf:

Aufgabenname, Ausführungszeit, Verbrauchszeit, durchschnittliche Ausführungszeit , Ausführungsprozentsatz der Gesamtzeit; sortiert in absteigender Reihenfolge nach Aufgabenverbrauchszeit;

Leistungsanalysetyp:

Ausführungszeitbasierte Analyse: Welche Aufgabe benötigt die längste Ausführungszeit

Wartebasierte Analyse: Ermitteln Sie, wo die Aufgabe am längsten blockiert ist

3.1.2 Leistungsanalyse verstehen

Fehlende, aber wichtige Informationen in der Leistungsanalyse:

1. Abfragen, die eine Optimierung wert sind

Abfragen, die nur einen kleinen Teil der Gesamtantwortzeit ausmachen, sind keine Optimierung wert; wenn die Kosten größer sind als der Nutzen, sollte die Optimierung gestoppt werden

2 🎜>

Auch solche, die nicht explizit optimiert sind, sollten optimiert werden, wie zum Beispiel Aufgaben, die selten ausgeführt werden, aber jedes Mal extrem langsam sind

3 Unbekannte Unbekannte

Verlorene Zeit: Der Unterschied zwischen der gesamten Aufgabenzeit und der tatsächlich gemessenen Zeit sollten wir auf die Möglichkeit solcher Probleme achten

4. Die Verteilung von kann nicht angezeigt werden alle Antwortzeiten, weitere Informationen, Histogramme, Prozentsätze, Standardabweichungen, Abweichungsindizes

5. Interaktive Analyse kann nicht auf höheren Ebenen des Stapels durchgeführt werden

3.2 Leistungsanalyse von Anwendungen: Top-Down

Einflussfaktoren für Leistungsengpässe:

1. Externe Ressourcen, Aufruf externer Webdienste oder Suchmaschinen

2. Es müssen große Datenmengen verarbeitet und analysiert werden sehr große XML-Datei

3. Teure Operationen in einer Schleife ausführen: Regelmäßigkeit missbrauchen

4. Ineffiziente Algorithmen verwenden: Brute-Force-Suchalgorithmus

Empfehlung: Neue Projekte sollten die Einbeziehung in Betracht ziehen Performance-Profiling-Code

3.2.1 Messung der PHP-Anwendung: leer

3.3 Profilierung von MySQL-Abfragen

3.3.1 Profilierung des Servers Die Last

verteilt die MySQL-Abfrageprotokolldatei:

1. Langsames Abfrageprotokoll: geringer Overhead, hohe Genauigkeit, großer Speicherplatz, lange geöffnet, achten Sie darauf, das Protokollrotationstool bereitzustellen, nur die Last zu erfassen. Schalten Sie es einfach ein während des Abtastzeitraums auf Mikrosekundenebene nach 5.1; 2. Allgemeines Protokoll, das aufgezeichnet wird, wenn die Abfrageanforderung den Server erreicht, ohne Antwortzeit und Ausführungsplan

Abfrageprotokoll analysieren

Generieren Sie von oben nach unten zunächst einen Analysebericht (pt-query-digest) und sehen Sie sich die Teile an, die besonders besorgniserregend sind

3.3.2 Analysieren Sie eine einzelne Abfrage

Denken Sie darüber nach warum es so lange dauert, wie man optimiert

Nach der Verwendung von SHOW PROFILE:MySQL5.1

Ansicht: Variablen wie „%pro%“ anzeigen;[Quelle]

Deaktiviert standardmäßig aktiviert: set profiling =1; dann die Anweisung auf dem Server ausführen (set profiling=off deaktivieren;)

Syntax:

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              --显示交换次数相关开销的信息
Nach dem Login kopieren
实质是这些开销信息被记录到information_schema.profiling表
Nach dem Login kopieren
show profiles;查看
show profile for query 2; 获取指定查询的开销(第二条查询开销明细)
show profile cpu for query 2 ;查看特定部分的开销,如下为CPU部分的开销 
show profile block io,cpu for query 2;  同时查看不同资源开销
Nach dem Login kopieren

SHOW STATUS verwenden : Zähler

Global zeigt den globalen Status an. Basierend auf einer bestimmten Verbindungssitzungsebene sollte der Bereich auf den Zähler achten, um die Häufigkeit der Aktivität anzuzeigen. Häufig verwendet: Handle-Zähler, temporäre Datei , Tabellenzähler

erstellt eine temporäre Tabelle über die Handle-Operation (Referenz, Zeiger? ) Greifen Sie auf diese temporäre Tabelle zu und wirken Sie sich auf die entsprechende Nummer im Ergebnis der Statusanzeige aus

Verwenden Sie das langsame Abfrageprotokoll: [Quelle] [Quelle]

Wird die Antwortzeit in MySQL

die überschreiten?

Schwellenwert Die long_query_time-Anweisung wird im langsamen Abfrageprotokoll aufgezeichnet (das Protokoll kann in eine Datei oder Datenbanktabelle geschrieben werden. Wenn die Leistungsanforderungen hoch sind, wird empfohlen, eine Datei zu schreiben. Der Standardwert beträgt 10 Sekunden). manuell aktiviert werden

zum Anzeigen von:

 

(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%’;
Nach dem Login kopieren

日志部分内容简介:

哪条语句导致慢查询(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基准测试

Das obige ist der detaillierte Inhalt von[MySQL-Datenbank] Interpretation von Kapitel 3: Serverleistungsanalyse (Teil 1). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

MySQL: Einfache Konzepte für einfaches Lernen MySQL: Einfache Konzepte für einfaches Lernen Apr 10, 2025 am 09:29 AM

MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

Wie man phpmyadmin öffnet Wie man phpmyadmin öffnet Apr 10, 2025 pm 10:51 PM

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

MySQL: Eine Einführung in die beliebteste Datenbank der Welt MySQL: Eine Einführung in die beliebteste Datenbank der Welt Apr 12, 2025 am 12:18 AM

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

Warum MySQL verwenden? Vorteile und Vorteile Warum MySQL verwenden? Vorteile und Vorteile Apr 12, 2025 am 12:17 AM

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

So verwenden Sie ein einzelnes Gewinde -Redis So verwenden Sie ein einzelnes Gewinde -Redis Apr 10, 2025 pm 07:12 PM

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

MySQL und SQL: Wesentliche Fähigkeiten für Entwickler MySQL und SQL: Wesentliche Fähigkeiten für Entwickler Apr 10, 2025 am 09:30 AM

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

Mysqls Platz: Datenbanken und Programmierung Mysqls Platz: Datenbanken und Programmierung Apr 13, 2025 am 12:18 AM

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

Überwachen Sie Redis Tröpfchen mit Redis Exporteur Service Überwachen Sie Redis Tröpfchen mit Redis Exporteur Service Apr 10, 2025 pm 01:36 PM

Eine effektive Überwachung von Redis -Datenbanken ist entscheidend für die Aufrechterhaltung einer optimalen Leistung, die Identifizierung potenzieller Engpässe und die Gewährleistung der Zuverlässigkeit des Gesamtsystems. Redis Exporteur Service ist ein leistungsstarkes Dienstprogramm zur Überwachung von Redis -Datenbanken mithilfe von Prometheus. In diesem Tutorial führt Sie die vollständige Setup und Konfiguration des Redis -Exporteur -Dienstes, um sicherzustellen, dass Sie nahtlos Überwachungslösungen erstellen. Durch das Studium dieses Tutorials erhalten Sie voll funktionsfähige Überwachungseinstellungen

See all articles