Heim php教程 PHP开发 MySQL konzentriert sich auf die Leistung und die detaillierte Erläuterung der zugehörigen Analysebefehle

MySQL konzentriert sich auf die Leistung und die detaillierte Erläuterung der zugehörigen Analysebefehle

Nov 19, 2016 am 09:32 AM
mysql

1. MySQL-Leistungsüberwachung betrifft


QPS (Abfragen pro Sekunde): Das QPS bezieht sich hier tatsächlich auf die Gesamtzahl der von MySQL Server pro Sekunde ausgeführten Abfragen:
QPS = Abfragen / Sekunden


TPS (Transaktionen pro Sekunde): Es gibt keinen direkten Transaktionszähler in MySQL Server. Wir können das Transaktionsvolumen des Systems nur durch Rollback- und Commit-Zähler berechnen. Daher müssen wir den von der Clientanwendung angeforderten TPS-Wert auf folgende Weise erhalten:
TPS = (Com_commit Com_rollback) / Sekunden


Schlüsselpuffer-Trefferrate: Schlüsselpuffer-Treffer Die Rate stellt die Cache-Trefferrate des Index der MyISAM-Typtabelle dar. Die Größe dieser Trefferquote wirkt sich direkt auf die Lese- und Schreibleistung von Tabellen vom Typ MyISAM aus. Die Trefferquote des Schlüsselpuffers
umfasst tatsächlich die Trefferquote des Lesens und des Schreibens. Die Werte dieser beiden Trefferquoten werden in MySQL nicht direkt angegeben, können jedoch wie folgt berechnet werden:
key_buffer_read_hits = ( 1 - Key_reads / Key_read_requests) * 100 %
key_buffer_write_hits= (1 - Key_writes / Key_write_requests) * 100 %


Innodb-Puffer-Trefferquote: Hier bezieht sich Innodb-Puffer auf innodb_buffer_poolDas heißt, den Speicher Speicherplatz, der zum Zwischenspeichern von Daten und Indizes von Tabellen vom Typ Innodb verwendet wird. Ähnlich wie beim Schlüsselpuffer
können wir auch seine Trefferquote basierend auf dem entsprechenden Statuswert berechnen, der von MySQL Server bereitgestellt wird:
innodb_buffer_read_hits=(1-Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100%


Abfrage-Cache-Trefferquote: Wenn wir den Abfrage-Cache verwenden, ist es auch notwendig, die Abfrage-Cache-Trefferquote zu überwachen, da sie uns möglicherweise Aufschluss darüber gibt, ob wir den Abfrage-Cache korrekt verwenden.
Die Trefferquote des Abfrage-Cache wird wie folgt berechnet:
Query_cache_hits= (Qcache_hits / (Qcache_hits Qcache_inserts)) * 100 %


Table Cache-Status: Der aktuelle Status des Table Cache kann uns helfen zu beurteilen, ob die Einstellung des Systemparameters table_open_cache angemessen ist. Wenn das Verhältnis zwischen den Statusvariablen Open_tables und Opened_tables zu niedrig ist, bedeutet dies, dass die Einstellung für den Tabellencache zu klein ist:
SHOW STATUS LIKE 'Open%';

Thread-Cache-Trefferrate: Thread-Cache-Treffer Die Rate kann direkt widerspiegeln. Überprüfen Sie, ob unser Systemparameter thread_cache_size richtig eingestellt ist. Ein angemessener thread_cache_size-Parameter kann
viele Ressourcen einsparen, die zum Erstellen neuer Verbindungen erforderlich sind.
Thread-Cache-Trefferrate wird wie folgt berechnet:
Thread_cache_hits = (1 - Threads_created / Connections) * 100 %

Sperrstatus: Der Sperrstatus umfasst Tabellensperre und Zeilensperre. Wir können das System übergeben Die Statusvariable enthält die Gesamtzahl der erhaltenen Sperren, die Anzahl der Wartezeiten anderer Threads durch die Sperre sowie Informationen zur Sperrwartezeit.
SHOW STATUS LIKE '%lock%';
Über die sperrenbezogenen Systemvariablen können wir die Gesamtzahl der Tabellensperren ermitteln, einschließlich der Häufigkeit, mit der andere vorhandene Threads warten. Gleichzeitig können Sie auch sehr detaillierte Informationen zur Zeilensperre abrufen, z. B. die Gesamtzahl der Zeilensperren, die Gesamtzeit der Zeilensperre, die Wartezeit für jede Zeilensperre, die maximale Wartezeit, die durch Zeilensperren verursacht wird, und die Anzahl der Threads, die derzeit auf Zeilensperren warten. Durch die Überwachung dieser Mengen können wir klar erkennen, ob die Gesamtsystemblockade schwerwiegend ist. Wenn das Verhältnis von Table_locks_waited zu Table_locks_immediate groß ist, bedeutet dies, dass die durch unsere Tabellensperren verursachte Blockierung schwerwiegend ist und die Abfrageanweisung möglicherweise angepasst werden muss, die Speicher-Engine möglicherweise geändert werden muss oder die Geschäftslogik geändert werden muss angepasst. Natürlich müssen spezifische Verbesserungsmethoden anhand tatsächlicher Szenarien beurteilt werden. Wenn Innodb_row_lock_waits größer ist, bedeutet dies, dass die Zeilensperre von Innodb ebenfalls schwerwiegend ist und die normale Verarbeitung anderer Threads beeinträchtigt. Auch die Ursache muss gefunden und behoben werden. Die Ursache für schwerwiegende Innodb-Zeilensperren kann darin liegen, dass der von der Abfrageanweisung verwendete Index nicht sinnvoll genug ist (Innodb-Zeilensperren werden basierend auf Indizes gesperrt), was dazu führt, dass die Lückensperre zu groß ist. Es kann auch sein, dass das System selbst über begrenzte Verarbeitungsfähigkeiten verfügt und andere Aspekte (z. B. Hardwaregeräte) berücksichtigt werden müssen.

Replikationsverzögerung: Die Replikationsverzögerung wirkt sich direkt darauf aus, wie lange sich die Slave-Datenbank in einem inkonsistenten Zustand befindet.
Führen Sie den Befehl „SHOW SLAVE STATUS“ auf dem Slave-Knoten aus und rufen Sie den Wert des Elements Seconds_Behind_Master ab, um die aktuelle Verzögerung des Slaves zu verstehen (Einheit: Sekunden).

Tmp-Tabellenstatus: Der Status der Tmp-Tabelle wird hauptsächlich verwendet, um zu überwachen, ob MySQL zu viele temporäre Tabellen verwendet und ob temporäre Tabellen zu groß sind und aus dem Speicher auf Festplattendateien ausgelagert werden müssen. Informationen zum temporären Tabellennutzungsstatus können über die folgenden Methoden abgerufen werden:
SHOW STATUS LIKE 'Created_tmp%';
--------- -------
|. Variablenname |. Wert |
-------- -------
|. Created_tmp_disk_tables |. 0 |
| Created_tmp_tables |
--------- -
Wenn Created_tmp_tables sehr groß ist, gibt es möglicherweise zu viele Sortiervorgänge im System oder die Tabellenverbindungsmethode ist nicht sehr optimiert. Und wenn das Verhältnis von Created_tmp_disk_tables zu Created_tmp_tables zu hoch ist, beispielsweise mehr als 10 %, müssen wir prüfen, ob der Systemparameter tmp_table_size groß genug eingestellt ist.


Nutzungsstatus des Binlog-Cache: Der Binlog-Cache wird zum Speichern von Binlog-Informationen verwendet, die noch nicht auf die Festplatte geschrieben wurden.
Die relevanten Statusvariablen lauten wie folgt:
SHOW STATUS LIKE 'Binlog_cache%';
Der Wert von Binlog_cache_disk_use ist nicht 0, was bedeutet, dass die Binlog-Cache-Größe möglicherweise nicht ausreicht, und die Systemparametergröße binlog_cache_size erhöht werden kann.

Innodb_log_waits-Volumen: Die Statusvariable Innodb_log_waits spiegelt direkt die Anzahl der Wartezeiten wider, die durch unzureichenden Speicherplatz im Innodb-Protokollpuffer verursacht werden.
STATUS WIE 'Innodb_log_waits' anzeigen;
Die Häufigkeit des Auftretens dieses Variablenwerts wirkt sich direkt auf die Schreibleistung des Systems aus. Wenn der Wert also einmal pro Sekunde erreicht, sollte der Wert des Systemparameters innodb_log_buffer_size sein Schließlich ist dies der Fall. Ein vom System gemeinsam genutzter Cache verursacht bei entsprechender Vergrößerung keine Probleme mit unzureichendem Speicher.


2. Detaillierte Erläuterung der Leistungsanalysebefehle

SHOW STATUS;
FLUSH STATUS;

Zeigen Sie die aktuelle Anzahl von VerbindungenSHOW STATUS LIKE 'Thread_%';
Thread_cached: die Anzahl der zwischengespeicherten Threads
Thread_running: active Die Anzahl von Threads
Thread_connected: die Anzahl der aktuell verbundenen Threads
Thread_created: die Gesamtzahl der erstellten Threads

Thread-Cache-Treffer
Thread_connected = SHOW GLOBAL STATUS LIKE Thread_created;
Connections = SHOW GLOBAL STATUS WIE 'Verbindungen';
TCH=(1 - (Threads_created / Connections)) * 100

Aktiven Verbindungsinhalt anzeigen
PROZESSLISTE ANZEIGEN;

Wenn die Anzahl der TCH beträgt weniger als 90 %, es braucht Zeit, um die Verbindung herzustellen, erhöhen Sie die Anzahl der Thread_cached

QPS (Abfrageverarbeitung pro Sekunde) MyISAM-Engine

Fragen = SHOW GLOBAL STATUS LIKE 'Fragen'
Uptime = SHOW GLOBAL STATUS LIKE 'Uptime';
QPS=Fragen/Uptime

TPS (Anzahl der pro Sekunde übertragenen Transaktionen), also die Anzahl der vom Server pro Sekunde verarbeiteten Transaktionen, wenn InnoDB angezeigt wird, aber ohne InnoDB nicht angezeigt wird.

Com_commit = GLOBAL STATUS WIE 'Com_commit' anzeigen;
Com_rollback = GLOBAL STATUS WIE 'Com_rollback' anzeigen;
Uptime = GLOBAL STATUS WIE 'Uptime' anzeigen;
TPS=(Com_commit Com_rollback )/Betriebszeit

QPS- und TPS-Werte müssen in Echtzeit überwacht werden, wenn sie während der Architekturerstellung nahe am Testpeak liegen, möge Gott mit Ihnen sein

Lese-/Schreibverhältnis
Qcache_hits = GLOBAL STATUS ANZEIGEN WIE 'Qcache_hits';
Com_select = GLOBAL STATUS ANZEIGEN WIE 'Com_select';
Com_insert = GLOBAL STATUS ANZEIGEN WIE 'Com_insert';
Com_update = GLOBAL STATUS ANZEIGEN WIE 'Com_update' ;
Com_delete = GLOBAL STATUS WIE 'Com_delete' anzeigen;
Com_replace = GLOBAL STATUS WIE 'Com_replace' anzeigen;
R/W=(Com_select Qcache_hits) / (Com_insert Com_update Com_delete Com_replace) * 100

Lese-Schreib-Verhältnis, eine wichtige Grundlage für die Optimierung der Datenbank, optimiert das Lesen, wenn viel gelesen wird, und optimiert das Schreiben, wenn viel geschrieben wird

Langsame Abfragen pro Minute
Slow_queries = GLOBAL STATUS WIE 'Slow_queries' anzeigen;
Uptime = GLOBAL STATUS WIE 'Uptime' anzeigen;
SQPM=Slow_queries / (Uptime/60)

Langsame Abfragen/Fragen-Verhältnis
Slow_queries = SHOW GLOBAL STATUS LIKE 'Slow_queries';
Questions = SHOW GLOBAL STATUS LIKE 'Questions';
S/Q=Slow_queries/Questions

Konzentrieren Sie sich beim Start der neuen Version auf langsame Abfragen

Full_join pro Minute
Select_full_join = GLOBAL STATUS WIE 'Select_full_join' anzeigen;
Uptime = GLOBAL STATUS WIE 'Uptime' anzeigen;
FJPM=Select_full_join / (Uptime/60)

Full_join verursacht durch Nichtverwendung des Index, optimieren Sie den Index

Innodb-Puffer-Lesetreffer
Innodb_buffer_pool_reads = SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_reads';
Innodb_buffer_pool_read_requests = SHOW GLOBAL STATUS LIKE 'Innodb_buffer_ pool_read_requests';
IFRH=(1 - Innod b_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100

InnoDB-Puffer-Trefferratenziel 95 %–99 %;

Tabellen-Cache
Open_tables= SHOW GLOBAL STATUS LIKE 'Open_tables' ;
Opened_tables= GLOBAL STATUS WIE 'Opened_tables' anzeigen;
table_cache= GLOBAL STATUS WIE 'table_cache' anzeigen;

table_cache sollte größer als Open_tables und kleiner als Opened_tables sein


Verhältnis temporärer Tabellen zu Datenträger

Created_tmp_tables = globalen Status wie „Created_tmp_tables“ anzeigen;
Created_tmp_disk_tables = globalen Status wie „Created_tmp_disk_tables“ anzeigen;

TDR=(Created_tmp_disk_tables/Created_tmp_tables)*100


GLOBAL STATUS WIE 'Innodb_row_lock_%' anzeigen;

Innodb_row_lock_current_waits

Die Anzahl der Zeilensperren, auf die derzeit gewartet wird. In MySQL 5.0.3 hinzugefügt.

Innodb_row_lock_time

Die Gesamtzeit, die für den Erwerb von Zeilensperren aufgewendet wurde, in Millisekunden.

Innodb_row_lock_time_avg

Die durchschnittliche Zeit zum Erwerb einer Zeilensperre in Millisekunden. Hinzugefügt in MySQL 5.0.3.

Innodb_row_lock_time_max

Die maximale Zeit zum Erwerb einer Zeilensperre, in Millisekunden. Hinzugefügt in MySQL 5.0.3.

Innodb_row_lock_waits

Die Anzahl, wie oft auf eine Zeilensperre gewartet werden musste.


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ßer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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: Die einfache Datenverwaltung für Anfänger MySQL: Die einfache Datenverwaltung für Anfänger Apr 09, 2025 am 12:07 AM

MySQL ist für Anfänger geeignet, da es einfach zu installieren, leistungsfähig und einfach zu verwalten ist. 1. Einfache Installation und Konfiguration, geeignet für eine Vielzahl von Betriebssystemen. 2. Unterstützung grundlegender Vorgänge wie Erstellen von Datenbanken und Tabellen, Einfügen, Abfragen, Aktualisieren und Löschen von Daten. 3. Bereitstellung fortgeschrittener Funktionen wie Join Operations und Unterabfragen. 4. Die Leistung kann durch Indexierung, Abfrageoptimierung und Tabellenpartitionierung verbessert werden. 5. Backup-, Wiederherstellungs- und Sicherheitsmaßnahmen unterstützen, um die Datensicherheit und -konsistenz zu gewährleisten.

Kann ich das Datenbankkennwort in Navicat abrufen? Kann ich das Datenbankkennwort in Navicat abrufen? Apr 08, 2025 pm 09:51 PM

Navicat selbst speichert das Datenbankkennwort nicht und kann das verschlüsselte Passwort nur abrufen. Lösung: 1. Überprüfen Sie den Passwort -Manager. 2. Überprüfen Sie Navicats "Messnot Password" -Funktion; 3.. Setzen Sie das Datenbankkennwort zurück; 4. Kontaktieren Sie den Datenbankadministrator.

So erstellen Sie Navicat Premium So erstellen Sie Navicat Premium Apr 09, 2025 am 07:09 AM

Erstellen Sie eine Datenbank mit Navicat Premium: Stellen Sie eine Verbindung zum Datenbankserver her und geben Sie die Verbindungsparameter ein. Klicken Sie mit der rechten Maustaste auf den Server und wählen Sie Datenbank erstellen. Geben Sie den Namen der neuen Datenbank und den angegebenen Zeichensatz und die angegebene Kollektion ein. Stellen Sie eine Verbindung zur neuen Datenbank her und erstellen Sie die Tabelle im Objektbrowser. Klicken Sie mit der rechten Maustaste auf die Tabelle und wählen Sie Daten einfügen, um die Daten einzufügen.

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 kann ich das Datenbankkennwort in Navicat für Mariadb anzeigen? Wie kann ich das Datenbankkennwort in Navicat für Mariadb anzeigen? Apr 08, 2025 pm 09:18 PM

Navicat für MariADB kann das Datenbankkennwort nicht direkt anzeigen, da das Passwort in verschlüsselter Form gespeichert ist. Um die Datenbanksicherheit zu gewährleisten, gibt es drei Möglichkeiten, Ihr Passwort zurückzusetzen: Setzen Sie Ihr Passwort über Navicat zurück und legen Sie ein komplexes Kennwort fest. Zeigen Sie die Konfigurationsdatei an (nicht empfohlen, ein hohes Risiko). Verwenden Sie Systembefehlsleitungs -Tools (nicht empfohlen, Sie müssen die Befehlszeilen -Tools beherrschen).

So führen Sie SQL in Navicat aus So führen Sie SQL in Navicat aus Apr 08, 2025 pm 11:42 PM

Schritte zur Durchführung von SQL in Navicat: Verbindung zur Datenbank herstellen. Erstellen Sie ein SQL -Editorfenster. Schreiben Sie SQL -Abfragen oder Skripte. Klicken Sie auf die Schaltfläche Ausführen, um eine Abfrage oder ein Skript auszuführen. Zeigen Sie die Ergebnisse an (wenn die Abfrage ausgeführt wird).

So erstellen Sie eine neue Verbindung zu MySQL in Navicat So erstellen Sie eine neue Verbindung zu MySQL in Navicat Apr 09, 2025 am 07:21 AM

Sie können eine neue MySQL -Verbindung in Navicat erstellen, indem Sie den Schritten folgen: Öffnen Sie die Anwendung und wählen Sie eine neue Verbindung (Strg N). Wählen Sie "MySQL" als Verbindungstyp. Geben Sie die Hostname/IP -Adresse, den Port, den Benutzernamen und das Passwort ein. (Optional) Konfigurieren Sie erweiterte Optionen. Speichern Sie die Verbindung und geben Sie den Verbindungsnamen ein.

Navicat stellt eine Verbindung zu Datenbankfehlercode und Lösung her Navicat stellt eine Verbindung zu Datenbankfehlercode und Lösung her Apr 08, 2025 pm 11:06 PM

Häufige Fehler und Lösungen beim Anschließen mit Datenbanken: Benutzername oder Kennwort (Fehler 1045) Firewall -Blocks -Verbindungsverbindung (Fehler 2003) Timeout (Fehler 10060) Die Verwendung von Socket -Verbindung kann nicht verwendet werden (Fehler 1042).

See all articles