Der Server verwaltet eine Vielzahl von Statusvariablen, die
Daten zu seinem Betrieb enthalten. Sie können sich diese
Variablen und die zugehörigen Werte mit der Anweisung
SHOW STATUS
anzeigen lassen:
mysql> SHOW STATUS;
+-----------------------------------+------------+
| Variable_name | Value |
+-----------------------------------+------------+
| Aborted_clients | 0 |
| Aborted_connects | 0 |
| Bytes_received | 155372598 |
| Bytes_sent | 1176560426 |
...
| Connections | 30023 |
| Created_tmp_disk_tables | 0 |
| Created_tmp_files | 3 |
| Created_tmp_tables | 2 |
...
| Threads_created | 217 |
| Threads_running | 88 |
| Uptime | 1389872 |
+-----------------------------------+------------+
Viele Statusvariablen werden durch die Anweisung
FLUSH STATUS
auf 0 zurückgesetzt.
Die Statusvariablen haben die nachfolgend beschriebenen Bedeutungen. Variablen ohne Versionsangabe waren bereits vor MySQL 5.1 vorhanden. Informationen zur Implementierungshistorie finden Sie im MySQL 5.0 Reference Manual.
Aborted_clients
Anzahl der Verbindungen, die abgebrochen wurden, weil der Client beendet wurde, ohne die Verbindung ordnungsgemäß zu schließen. Siehe auch Abschnitt A.2.10, „Kommunikationsfehler/abgebrochene Verbindung“.
Aborted_connects
Anzahl der fehlgeschlagenen Versuche, eine Verbindung mit dem MySQL-Server herzustellen. Siehe auch Abschnitt A.2.10, „Kommunikationsfehler/abgebrochene Verbindung“.
Binlog_cache_disk_use
Anzahl der Transaktionen, die den temporären
Binärlog-Cache verwendeten, aber den Wert von
binlog_cache_size
überstiegen,
weswegen eine Temporärdatei zur Speicherung von
Anweisungen aus der Transaktion benutzt wurde.
Binlog_cache_use
Anzahl der Transaktionen, die den Binärlog-Cache verwendet haben.
Bytes_received
Anzahl der Bytes, die von allen Clients empfangen wurden.
Bytes_sent
Anzahl der Bytes, die an alle Clients gesendet wurden.
Com_
xxx
Die
Com_
-Variablen
zum Zählen von Anweisungen geben die Häufigkeit an, mit
der die Anweisung xxx
xxx
ausgeführt wurde. Für jeden Anweisungstyp gibt es eine
Statusvariable. So zählen etwa
Com_delete
und
Com_insert
die
DELETE
- bzw.
INSERT
-Anweisungen.
Die folgenden
Com_stmt_
-Statusvariablen
sind vorhanden:
xxx
Com_stmt_prepare
Com_stmt_execute
Com_stmt_fetch
Com_stmt_send_long_data
Com_stmt_reset
Com_stmt_close
Diese Variablen stehen für vorbereitete
Anweisungsbefehle. Ihre Namen beziehen sich auf den
COM_
-Befehlssatz,
der in der Vermittlungsschicht zum Einsatz kommt. Mit
anderen Worten erhöhen sich ihre Werte immer dann, wenn
vorbereitete Anweisungs-API-Aufrufe wie
mysql_stmt_prepare(),
mysql_stmt_execute() usw. ausgeführt
werden. Allerdings erhöhen sich
xxx
Com_stmt_prepare
,
Com_stmt_execute
und
Com_stmt_close
auch bei
PREPARE
, EXECUTE
bzw. DEALLOCATE PREPARE
. Ferner
erhöhen sich die Werte der älteren (d. h. seit MySQL
4.1.3 vorhandenen) Anweisungszählvariablen
Com_prepare_sql
,
Com_execute_sql
und
Com_dealloc_sql
bei den Anweisungen
PREPARE
, EXECUTE
und
DEALLOCATE PREPARE
.
Com_stmt_fetch
steht für die
Gesamtanzahl der beim Holen von Cursorn abgesetzten
Netzwerkrundreisen.
Alle
Com_stmt_
-Variablen
werden auch dann erhöht, wenn ein Argument einer
vorbereiteten Anweisung unbekannt ist oder während der
Ausführung ein Fehler aufgetreten ist. Mit anderen Worten
entsprechen ihre Werte der Anzahl der abgesetzten (und
nicht der erfolgreich verarbeiteten) Anfragen.
xxx
Compression
Gibt an, ob die Clientverbindung eine Komprimierung im Client/Server-Protokoll verwendet. Wurde in MySQL 5.1.2 hinzugefügt.
Connections
Anzahl der Versuche, eine Verbindung mit dem MySQL-Server herzustellen (unabhängig davon, ob diese erfolgreich waren oder nicht).
Created_tmp_disk_tables
Anzahl der vom Server bei der Ausführung von Anweisungen automatisch auf der Festplatte erstellten Temporärtabellen.
Created_tmp_files
Gibt an, wie viele Temporärdateien mysqld erstellt hat.
Created_tmp_tables
Anzahl der vom Server bei der Ausführung von Anweisungen
automatisch im Speicher erstellten Temporärtabellen. Wenn
Created_tmp_disk_tables
einen hohen
Wert hat, sollten Sie den Wert von
tmp_table_size
erhöhen, damit
Temporärtabellen im Speicher statt auf Festplatte
erstellt werden.
Delayed_errors
Anzahl der mit INSERT DELAYED
geschriebenen Datensätze, bei denen ein Fehler
aufgetreten ist (wahrscheinlich duplicate
key
).
Delayed_insert_threads
Anzahl der verzögerten INSERT
DELAYED
-Threads, die in Verwendung sind.
Delayed_writes
Anzahl der geschriebenen INSERT
DELAYED
-Datensätze.
Flush_commands
Anzahl der ausgeführten
FLUSH
-Anweisungen.
Handler_commit
Anzahl der internen COMMIT
-Anweisungen.
Handler_discover
Der MySQL-Server kann bei der NDB
Cluster
-Speicher-Engine fragen, ob sie eine
Tabelle mit einem gegebenen Namen kennt. Dies bezeichnet
man als Entdeckung. Handler_discover
gibt die Häufigkeit ein, mit der Tabellen mithilfe dieser
Methode entdeckt wurden.
Handler_delete
Häufigkeit, mit der Datensätze aus Tabellen gelöscht wurden.
Handler_read_first
Häufigkeit, mit der der erste Eintrag aus einem Index
gelesen wurde. Wenn dieser Wert hoch ist, kann man davon
ausgehen, dass der Server eine große Zahl vollständiger
Indexscans ausführt (z. B. für die Spalte
SELECT col1 FROM foo
, vorausgesetzt,
col1
ist indiziert).
Handler_read_key
Anzahl der Anforderungen zum Auslesen eines Datensatzes basierend auf einem Schlüssel. Wenn der Wert hoch ist, können Sie davon ausgehen, dass Ihre Tabellen passend für Ihre Abfragen indiziert sind.
Handler_read_next
Anzahl der Anforderungen zum Auslesen des nächsten Datensatzes in der Schlüsselreihenfolge. Dieser Wert wird hochgezählt, wenn Sie eine Indexspalte mit einer Bereichsbeschränkung abfragen oder einen Indexscan ausführen.
Handler_read_prev
Anzahl der Anforderungen zum Auslesen des vorherigen
Datensatzes in der Schlüsselreihenfolge. Diese
Lesemethode wird in erster Linie zur Optimierung von
ORDER BY ... DESC
verwendet.
Handler_read_rnd
Anzahl der Anforderungen zum Auslesen eines Datensatzes basierend auf einer festen Position. Dieser Wert ist hoch, wenn Sie viele Abfragen ausführen, die eine Sortierung des Ergebnisses erfordern. Sie setzen dann wahrscheinlich viele Abfragen ab, die für MySQL das Scannen ganzer Tabellen erforderlich machen, oder verwenden Joins, die die Schlüssel nicht optimal nutzen.
Handler_read_rnd_next
Anzahl der Anforderungen zum Auslesen des nächsten Datensatzes in der Datendatei. Dieser Wert ist hoch, wenn Sie viele Tabellenscans ausführen. Im Allgemeinen lässt dies darauf schließen, dass Ihre Tabellen nicht korrekt indiziert sind oder Ihre Abfragen nicht so geschrieben sind, dass sie die vorhandenen Indizes nutzen können.
Handler_rollback
Anzahl der internen
ROLLBACK
-Anweisungen.
Handler_update
Anzahl der Anforderungen zur Aktualisierung eines Datensatzes in einer Tabelle.
Handler_write
Anzahl der Anforderungen zum Einfügen eines Datensatzes in eine Tabelle.
Innodb_buffer_pool_pages_data
Anzahl der Seiten, die (schmutzige wie auch saubere) Daten enthalten.
Innodb_buffer_pool_pages_dirty
Anzahl der derzeit schmutzigen Seiten.
Innodb_buffer_pool_pages_flushed
Anzahl der Anforderungen nach einem Neuladen der Pufferpoolseiten.
Innodb_buffer_pool_pages_free
Anzahl der freien Seiten.
Innodb_buffer_pool_pages_latched
Anzahl der verriegelten Seiten im
InnoDB
-Pufferpool. Dies sind die
Seiten, die derzeit gelesen oder geschrieben oder aus
einem anderen Grund nicht auf Festplatte synchronisiert
werden können.
Innodb_buffer_pool_pages_misc
Anzahl der Seiten, die in Verwendung sind, weil sie
aufgrund administrativer Mehrbelastung (z. B.
Datensatzsperren oder eines adaptiven Hash-Index)
zugewiesen wurden. Dieser Wert kann auch als
Innodb_buffer_pool_pages_total
–
Innodb_buffer_pool_pages_free
–
Innodb_buffer_pool_pages_data
berechnet
werden.
Innodb_buffer_pool_pages_total
Gesamtgröße des Pufferpools in Seiten.
Innodb_buffer_pool_read_ahead_rnd
Anzahl der vorab durchgeführten
„zufälligen“ Leseoperationen, die durch
InnoDB
eingeleitet wurden. Dies
geschieht, wenn eine Abfrage einen Großteil einer Tabelle
in zufälliger Reihenfolge scannt.
Innodb_buffer_pool_read_ahead_seq
Anzahl der vorab durchgeführten sequenziellen
Leseoperationen, die durch InnoDB
eingeleitet wurden. Dies geschieht, wenn
InnoDB
einen vollständigen
sequenziellen Tabellenscan durchführt.
Innodb_buffer_pool_read_requests
Anzahl der Anforderungen logischer Leseoperationen durch
InnoDB
.
Innodb_buffer_pool_reads
Anzahl der Anforderungen logischer Leseoperationen, die
InnoDB
nicht aus dem Pufferpool
erfüllen konnte, weswegen eine Leseoperationen für eine
einzelne Seite ausgeführt werden musste.
Innodb_buffer_pool_wait_free
Normalerweise erfolgen Schreiboperationen in den
InnoDB
-Pufferpool im Hintergrund. Wenn
es allerdings notwendig ist, eine Seite zu lesen oder zu
erstellen, und keine sauberen Seiten verfügbar sind, ist
es auch erforderlich zu warten, bis die Seiten neu
geschrieben wurden. Dieser Zähler enthält die Anzahl der
Instanzen dieser Wartevorgänge. Wenn die Größe des
Pufferpools korrekt eingestellt wurde, sollte dieser Wert
niedrig sein.
Innodb_buffer_pool_write_requests
Anzahl der Schreiboperationen in den
InnoDB
-Pufferpool.
Innodb_data_fsyncs
Anzahl der bislang aufgetretenen
fsync()
-Operationen.
Innodb_data_pending_fsyncs
Aktuelle Anzahl anhängiger
fsync()
-Operationen.
Innodb_data_pending_reads
Aktuelle Anzahl anhängiger Leseoperationen.
Innodb_data_pending_writes
Aktuelle Anzahl anhängiger Schreiboperationen.
Innodb_data_read
Menge der bislang gelesenen Daten (in Byte).
Innodb_data_reads
Gesamtanzahl der Datenleseoperationen.
Innodb_data_writes
Gesamtanzahl der Datenschreiboperationen.
Innodb_data_written
Menge der bislang geschriebenen Daten (in Byte).
Innodb_dblwr_writes
,
Innodb_dblwr_pages_written
Anzahl der durchgeführten doppelten Schreiboperationen und Anzahl der Seiten, die zu diesem Zweck geschrieben wurden. Siehe auch Abschnitt 14.2.14.1, „Festplattenein- und -ausgaben“.
Innodb_log_waits
Häufigkeit, mit der der Logpuffer zu klein und ein Wartevorgang erforderlich war, bis der Vorgang nach dem Neuschreiben fortgesetzt werden konnte.
Innodb_log_write_requests
Anzahl der Logschreibeanforderungen.
Innodb_log_writes
Anzahl der physischen Schreiboperationen in die Logdatei.
Innodb_os_log_fsyncs
Anzahl der abgeschlossenen
fsync()
-Schreiboperationen in die
Logdatei.
Innodb_os_log_pending_fsyncs
Anzahl der anhängigen
fsync()
-Operationen für die Logdatei.
Innodb_os_log_pending_writes
Anzahl der anhängigen Schreiboperationen für die Logdatei.
Innodb_os_log_written
Anzahl der in die Logdatei geschriebenen Bytes.
Innodb_page_size
Die einkompilierte InnoDB
-Seitengröße
(standardmäßig 16 Kbyte). Viele Werte werden in Seiten
gezählt. Die Angabe der Seitengröße erlaubt eine
einfache Konvertierung in Bytes.
Innodb_pages_created
Anzahl der erstellten Seiten.
Innodb_pages_read
Anzahl der gelesenen Seiten.
Innodb_pages_written
Anzahl der geschriebenen Seiten.
Innodb_row_lock_current_waits
Anzahl der Datensatzsperren, auf die derzeit gewartet wird.
Innodb_row_lock_time
Die mit dem Erwirken von Datensatzsperren verbrachte Zeit (in Millisekunden).
Innodb_row_lock_time_avg
Die durchschnittliche Zeit zum Erwirken einer Datensatzsperre (in Millisekunden).
Innodb_row_lock_time_max
Die maximale Zeit zum Erwirken einer Datensatzsperre (in Millisekunden).
Innodb_row_lock_waits
Häufigkeit, mit der auf eine Datensatzsperre gewartet werden musste.
Innodb_rows_deleted
Anzahl der Datensätze, die aus
InnoDB
-Tabellen gelöscht wurden.
Innodb_rows_inserted
Anzahl der Datensätze, die in
InnoDB
-Tabellen eingefügt wurden.
Innodb_rows_read
Anzahl der Datensätze, die aus
InnoDB
-Tabellen gelesen wurden.
Innodb_rows_updated
Anzahl der Datensätze, die in
InnoDB
-Tabellen aktualisiert wurden.
Key_blocks_not_flushed
Anzahl der Schlüsselblöcke im Schlüssel-Cache, die geändert, aber noch nicht neu auf Festplatte geschrieben wurden.
Key_blocks_unused
Anzahl der unbenutzten Blöcke im Schlüssel-Cache. Sie
können anhand dieses Wertes bestimmen, wie groß der
verwendete Anteil des Schlüssel-Caches ist. Lesen Sie
auch die Beschreibung zu
key_buffer_size
in
Abschnitt 5.2.2, „Server-Systemvariablen“.
Key_blocks_used
Anzahl der benutzten Blöcke im Schlüssel-Cache. Dieser Wert ist eine Art Hochwassermarke, die die maximale Anzahl von Blöcken angibt, die jemals gleichzeitig verwendet wurden.
Key_read_requests
Anzahl der Anforderungen zum Auslesen eines Schlüsselblocks aus dem Cache.
Key_reads
Die Anzahl physischer Lesezugriffe eines Schlüsselblocks
von der Festplatte. Wenn der Wert von
Key_reads
hoch ist, dann ist Ihr Wert
für key_buffer_size
wahrscheinlich zu
niedrig. Die Cache-Fehlrate kann berechnet werden als
Key_reads
÷
Key_read_requests
.
Key_write_requests
Die Anzahl der Anforderungen zum Schreiben eines Schlüsselblocks in den Cache.
Key_writes
Anzahl physischer Schreibvorgänge eines Schlüsselblocks auf die Festplatte.
Last_query_cost
Gesamtkosten der letzten kompilierten Abfrage nach
Berechnung durch den Abfrageoptimierer. Dieser Wert ist
praktisch, um die Kosten verschiedener Abfragepläne für
dieselbe Abfrage zu vergleichen. Der Vorgabewert 0
bedeutet, dass noch keine Abfrage kompiliert wurde.
Last_query_cost
hat sitzungsbezogen
Geltung.
Max_used_connections
Maximale Anzahl von Verbindungen, die seit dem Start des Servers gleichzeitig in Verwendung waren.
Not_flushed_delayed_rows
Anzahl der Datensätze, die darauf warten, in
INSERT DELAY
-Warteschlangen geschrieben
zu werden.
Open_files
Anzahl der offenen Dateien.
Open_streams
Anzahl der offenen Streams (hauptsächlich zum Loggen verwendet).
Open_tables
Anzahl der offenen Tabellen.
Opened_tables
Anzahl der Tabellen, die geöffnet wurden. Wenn der Wert
von Opened_tables
hoch ist, dann ist
Ihr Wert für table_open_cache
wahrscheinlich zu niedrig.
Qcache_free_blocks
Anzahl freier Speicherblöcke im Abfrage-Cache.
Qcache_free_memory
Menge des freien Speichers für den Abfrage-Cache.
Qcache_hits
Anzahl der Treffer im Abfrage-Cache.
Qcache_inserts
Anzahl der Abfragen, die zum Abfrage-Cache hinzugefügt wurden.
Qcache_lowmem_prunes
Anzahl der Abfragen, die wegen Speichermangels aus dem Abfrage-Cache gelöscht wurden.
Qcache_not_cached
Anzahl der nicht im Cache abgelegten Abfragen (weil diese
entweder nicht speicherbar waren oder aufgrund der
query_cache_type
-Einstellung nicht
abgelegt wurden).
Qcache_queries_in_cache
Anzahl der im Abfrage-Cache registrierten Abfragen.
Qcache_total_blocks
Gesamtzahl von Blöcken im Abfrage-Cache.
Questions
Anzahl der Anweisungen, die Clients an den Server gesendet haben.
Rpl_status
Status der ausfallsicheren Replikation (noch nicht implementiert).
Select_full_join
Anzahl der Joins, die Tabellenscans durchführen, weil sie keine Indizes verwenden. Wenn der Wert nicht 0 ist, sollten Sie die Indizes Ihrer Tabellen sorgfältig prüfen.
Select_full_range_join
Anzahl der Joins, die eine Bereichssuche in einer Referenztabelle verwendet haben.
Select_range
Anzahl der Joins, die Bereiche in der ersten Tabelle verwendet haben. Dies ist normalerweise auch dann kein kritisches Problem, wenn der Wert zu groß ist.
Select_range_check
Anzahl der Joins ohne Schlüssel, die nach jedem Datensatz auf Schlüsselverwendung prüfen. Wenn der Wert nicht 0 ist, sollten Sie die Indizes Ihrer Tabellen sorgfältig prüfen.
Select_scan
Anzahl der Joins, die einen vollständigen Scan der ersten Tabelle durchgeführt haben.
Slave_open_temp_tables
Anzahl der Temporärtabellen, die der Slave-SQL-Thread derzeit geöffnet hält.
Slave_running
Ist ON
, wenn dieser Server ein Slave
ist, der mit einem Master verbunden ist.
Slave_retried_transactions
Gesamthäufigkeit seit dem Serverstart, mit der der Replikations-Slave-SQL-Thread Transaktionen erneut versucht hat.
Slow_launch_threads
Anzahl der Threads, deren Erzeugung länger als die durch
slow_launch_time
angegebene Anzahl von
Sekunden dauerte.
Slow_queries
Anzahl der Abfragen, die länger als die durch
long_query_time
angegebene Anzahl von
Sekunden dauerten. Siehe auch
Abschnitt 5.12.4, „Die Logdatei für langsame Anfragen“.
Sort_merge_passes
Anzahl der Merge-Durchgänge, die der Sortieralgorithmus
durchführen musste. Wenn dieser Wert hoch ist, sollten
Sie unter Umständen den Wert der Systemvariable
sort_buffer_size
erhöhen.
Sort_range
Anzahl der Sortiervorgänge, die mit Bereichen durchgeführt wurden.
Sort_rows
Anzahl der sortierten Datensätze.
Sort_scan
Anzahl der Sortiervorgänge, die durchgeführt wurden, indem die Tabelle gescannt wurde.
Ssl_
xxx
Für SSL-Verbindungen verwendete Variablen.
Table_locks_immediate
Häufigkeit, mit der eine Tabellensperre sofort erwirkt werden konnte.
Table_locks_waited
Häufigkeit, mit der eine Tabellensperre nicht sofort erwirkt werden konnte und ein Wartevorgang erforderlich wurde. Wenn dieser Wert hoch und die Leistung problematisch niedrig ist, sollten Sie zunächst Ihre Abfragen optimieren und dann Ihre Tabelle(n) entweder unterteilen oder die Replikation verwenden.
Threads_cached
Anzahl der Threads im Thread-Cache.
Threads_connected
Anzahl der momentan offenen Verbindungen.
Threads_created
Anzahl der Threads, die zur Verwaltung von Verbindungen
erstellt wurden. Wenn der Wert von
Threads_created
hoch ist, sollten Sie
den Wert von thread_cache_size
erhöhen. Die Cache-Trefferrate kann berechnet werden als
Threads_created
÷
Connections
.
Threads_running
Anzahl nicht schlafender Threads.
Uptime
Dauer seit dem Serverstart (in Sekunden).
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.