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