


MySQL konzentriert sich auf die Leistung und die detaillierte Erläuterung der zugehörigen Analysebefehle
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.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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.

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.

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

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

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

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.

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