SHOW [FULL] PROCESSLIST
          SHOW PROCESSLIST zeigt Ihnen, welche
          Threads gerade ausgeführt werden. Sie können diese
          Information auch mit mysqladmin processlist
          anzeigen. Wenn Sie die Berechtigung SUPER
          haben, werden alle Threads angezeigt. Andernfalls werden nur
          Ihre eigenen Threads (d. h. Threads, die mit dem
          MySQL-Benutzerkonto verknüpft sind, das Sie verwenden)
          angezeigt. Siehe auch Abschnitt 13.5.5.3, „KILL“. Wenn Sie das
          Schlüsselwort FULL nicht angeben, werden
          nur die ersten hundert Zeichen jeder Anweisung im Feld
          Info angezeigt.
        
          Diese Anweisung ist recht praktisch, wenn Sie die
          Fehlermeldung „Too many connections“ erhalten und
          herausfinden wollen, was gerade passiert. MySQL reserviert
          eine zusätzliche Verbindung für Konten, die die Berechtigung
          SUPER haben, damit gewährleistet ist, dass
          Administratoren jederzeit Verbindungen herstellen können, um
          das System zu überprüfen. (Dies setzt natürlich voraus,
          dass Sie diese Berechtigung nicht allen Benutzern gewähren.)
        
          Die Ausgabe von SHOW PROCESSLIST kann etwa
          so aussehen:
        
mysql> SHOW FULL PROCESSLIST\G *************************** 1. row *************************** Id: 1 User: system user Host: db: NULL Command: Connect Time: 1030455 State: Waiting for master to send event Info: NULL *************************** 2. row *************************** Id: 2 User: system user Host: db: NULL Command: Connect Time: 1004 State: Has read all relay log; waiting for the slave I/O thread to update it Info: NULL *************************** 3. row *************************** Id: 3112 User: replikator Host: artemis:2204 db: NULL Command: Binlog Dump Time: 2144 State: Has sent all binlog to slave; waiting for binlog to be updated Info: NULL *************************** 4. row *************************** Id: 3113 User: replikator Host: iconnect2:45781 db: NULL Command: Binlog Dump Time: 2086 State: Has sent all binlog to slave; waiting for binlog to be updated Info: NULL *************************** 5. row *************************** Id: 3123 User: stefan Host: localhost db: apollon Command: Query Time: 0 State: NULL Info: SHOW FULL PROCESSLIST 5 rows in set (0.00 sec)
Die Spalten haben die nachfolgend beschriebenen Bedeutungen:
              Id
            
Der Verbindungsbezeichner.
              User
            
              Der MySQL-Benutzer, der die Anweisung abgesetzt hat. Die
              Anzeige system user bezeichnet einen
              clientlosen Thread, den der Server erzeugt hat, um Tasks
              intern zu verwalten. Es kann sich dabei um den I/O- oder
              den SQL-Thread, der auf dem Replikationsserver verwendet
              wird, oder einen Handler für verzögerte Datensätze
              handeln. Für den system user ist in
              der Spalte Host kein Host angegeben.
            
              Host
            
              Der Hostname des Clients, der die Anweisung absetzt
              (außer bei system user, wo kein Host
              angegeben wird).
            
              SHOW PROCESSLIST meldet den Hostnamen
              für TCP/IP-Verbindungen im Format
              ,
              damit Sie schneller feststellen können, welcher Client
              was tut.
            host_name:client_port
              db
            
              Die Standarddatenbank, sofern eine solche ausgewählt
              wurde; andernfalls NULL.
            
              Command
            
              Der Wert dieser Spalte entspricht den
              COM_-Befehlen
              des Client/Server-Protokolls. Siehe auch
              Abschnitt 5.2.4, „Server-Statusvariablen“.
            xxx
              Der Wert Command kann einen der
              folgenden Werte haben: Binlog Dump,
              Change user, Close
              stmt, Connect,
              Connect Out, Create
              DB, Debug, Delayed
              insert, Drop DB,
              Error, Execute,
              Fetch, Field List,
              Init DB, Kill,
              Long Data, Ping,
              Prepare,
              Processlist, Query,
              Quit, Refresh,
              Register Slave, Reset
              stmt, Set option,
              Shutdown, Sleep,
              Statistics, Table
              Dump, Time
            
              Time
            
Die Zeit (in Sekunden), die seit dem Start der Anweisung oder des Befehls bis jetzt vergangen ist.
              State
            
              Eine Aktion, ein Ereignis oder ein Zustand. Folgende Werte
              sind möglich: After create,
              Analyzing, Changing
              master, Checking master
              version, Checking table,
              Connecting to master, Copying
              to group table, Copying to tmp
              table, Creating delayed
              handler, Creating index,
              Creating sort index, Creating
              table from master dump, Creating tmp
              table, Execution of
              init_command, FULLTEXT
              initialization, Finished reading one
              binlog; switching to next binlog,
              Flushing tables,
              Killed, Killing
              slave, Locked,
              Making temp file , Opening
              master dump table, Opening
              table, Opening tables,
              Processing request, Purging
              old relay logs, Queueing master event
              to the relay log, Reading event from
              the relay log, Reading from
              net, Reading master dump table
              data, Rebuilding the index on master
              dump table, Reconnecting after a failed
              binlog dump request, Reconnecting after
              a failed master event read, Registering
              slave on master, Removing
              duplicates, Reopen tables,
              Repair by sorting, Repair
              done, Repair with keycache,
              Requesting binlog dump,
              Rolling back, Saving
              state, Searching rows for
              update, Sending binlog event to
              slave, Sending data,
              Sorting for group, Sorting for
              order, Sorting index,
              Sorting result, System
              lock, Table lock,
              Thread initialized,
              Updating, User lock,
              Waiting for INSERT, Waiting
              for master to send event, Waiting for
              master update, Waiting for slave mutex
              on exit, Waiting for table,
              Waiting for tables, Waiting
              for the next event in relay log,
              Waiting on cond, Waiting to
              finalize termination, Waiting to
              reconnect after a failed binlog dump request,
              Waiting to reconnect after a failed master event
              read, Writing to net,
              allocating local table,
              cleaning up, closing
              tables, converting HEAP to
              MyISAM, copy to tmp table,
              creating table, deleting from
              main table, deleting from reference
              tables,
              discard_or_import_tablespace,
              end, freeing items,
              got handler lock, got old
              table, info,
              init, insert,
              logging slow query,
              login, preparing,
              purging old relay logs, query
              end, removing tmp table,
              rename, rename result
              table, reschedule,
              setup, starting
              slave, statistics,
              storing row into queue,
              update, updating,
              updating main table, updating
              reference tables, upgrading
              lock, waiting for delay_list,
              waiting for handler insert,
              waiting for handler lock,
              waiting for handler open
            
              Die gängigsten State-Werte werden im
              Folgenden beschrieben. Die Mehrzahl der anderen
              State-Werte sind in erster Linie
              praktisch, um Bugs im Server zu finden. Weitere
              Informationen zu Prozesszuständen bei Replikationsservern
              finden Sie in
              Abschnitt 6.4, „Replikation: Implementationsdetails“.
            
              Für die SHOW PROCESSLIST-Anweisung ist
              der State-Wert NULL.
            
              Info
            
              Die Anweisung, die der Thread ausführt, oder
              NULL, sofern er keine Anweisung
              ausführt.
            
          Einige State-Werte finden Sie in der
          Ausgabe von SHOW PROCESSLIST recht häufig:
        
              Checking table
            
Der Thread führt eine Tabellenprüfung durch.
              Closing tables
            
Der Thread synchronisiert die geänderten Tabellendaten auf die Festplatte und schließt die verwendeten Tabellen. Dies sollte ein sehr schneller Vorgang sein. Andernfalls sollten Sie überprüfen, ob Ihre Festplatte nicht voll ist oder stark frequentiert wird.
              Connect Out
            
Ein Replikationsslave stellt eine Verbindung zum Master her.
              Copying to tmp table
            
Der Server kopiert Daten in eine Temporärtabelle im Speicher.
              Copying to tmp table on disk
            
              Der Server kopiert Daten in eine Temporärtabelle auf die
              Festplatte. Die temporäre Ergebnismenge war größer als
              tmp_table_size, und der Thread stellt
              die Temporärtabelle deswegen vom speicherresidenten in
              das festplattenbasierte Format um, um Speicher zu sparen.
            
              Creating tmp table
            
Der Thread erstellt eine Temporärtabelle, die einen Teil des Abfrageergebnisses aufnehmen soll.
              deleting from main table
            
Der Server führt den ersten Teil eines Löschvorgangs über mehrere Tabellen aus. Der Löschvorgang erfolgt nur in der ersten Tabelle und speichert Felder und Offsets, die zum Löschen aus anderen (Referenz-)Tabellen benutzt werden.
              deleting from reference tables
            
Der Server führt den zweiten Teil eines Löschvorgangs über mehrere Tabellen aus und löscht die entsprechenden Datensätze aus anderen Tabellen.
              Flushing tables
            
              Der Thread führt FLUSH TABLES aus und
              wartet, bis alle Threads ihre Tabellen geschlossen haben.
            
              FULLTEXT initialization
            
Der Server bereitet die Ausführung einer natursprachlichen Volltextsuche vor.
              Killed
            
              Jemand hat eine KILL-Anweisung an den
              Thread abgesetzt. Der Thread wird abgebrochen, wenn beim
              nächsten Mal das Terminierungs-Flag gesetzt wird. Dieses
              Flag wird in jeder größeren Schleife in MySQL gesetzt.
              Trotzdem kann es unter Umständen einen Moment dauern, bis
              der Thread terminiert ist. Ist der Thread durch einen
              anderen Thread gesperrt, dann erfolgt die Terminierung
              erst, wenn der andere Thread die Sperre aufgehoben hat.
            
              Locked
            
Die Abfrage wird durch eine andere Abfrage gesperrt.
              Sending data
            
              Der Thread verarbeitet Datensätze für eine
              SELECT-Anweisung und sendet zudem Daten
              an den Client.
            
              Sorting for group
            
              Der Thread führt eine Sortierung infolge einer
              GROUP BY-Klausel durch.
            
              Sorting for order
            
              Der Thread führt eine Sortierung infolge einer
              ORDER BY-Klausel durch.
            
              Opening tables
            
              Der Thread versucht, eine Tabelle zu öffnen. Dies sollte
              ein sehr schneller Vorgang sein, sofern das Öffnen nicht
              durch irgendeinen Umstand verhindert wird. So kann
              beispielsweise eine ALTER TABLE- oder
              eine LOCK TABLE-Anweisung das Öffnen
              einer Tabelle bis zum Abschluss der Anweisung unterbinden.
            
              Reading from net
            
Der Server liest ein Paket aus dem Netzwerk.
              Removing duplicates
            
              Die Abfrage verwendete SELECT DISTINCT
              so, dass MySQL die DISTINCT-Operation
              nicht zu einem frühen Zeitpunkt wegoptimieren konnte. Aus
              diesem Grund erfordert MySQL eine zusätzliche Phase, um
              alle duplizierten Datensätze zu entfernen, bevor das
              Ergebnis an den Client gesendet wird.
            
              Reopen table
            
Der Thread hat eine Sperre für die Tabelle erwirkt, danach aber festgestellt, dass die zugrunde liegende Tabellenstruktur sich geändert hat. Der Thread hat die Sperre dann aufgehoben und die Tabelle geschlossen und versucht nun, sie wieder zu öffnen.
              Repair by sorting
            
Der Reparaturcode verwendet einen Sortiervorgang zur Erstellung der Indizes.
              Repair with keycache
            
              Der Reparaturcode erstellt einen Schlüssel nach dem
              anderen über den Schlüssel-Cache. Dies ist wesentlich
              langsamer als Repair by sorting.
            
              Searching rows for update
            
              Der Thread durchläuft die erste Phase zur Suche nach
              passenden Datensätzen, bevor er sie aktualisiert. Dies
              muss getan werden, wenn UPDATE den
              Index ändert, der für die Suche nach den betreffenden
              Datensätzen verwendet wird.
            
              Sleeping
            
Der Thread wartet darauf, dass der Client eine neue Anweisung an ihn sendet.
              statistics
            
Der Server berechnet Statistiken zur Entwicklung eines Abfrageausführungsplans.
              Der Thread wartet darauf, eine externe Systemsperre für
              die Tabelle zu erhalten. Wenn Sie nicht mehrere
              mysqld-Server verwenden, die auf die
              gleichen Tabellen zugreifen, können Sie Systemsperren mit
              der Option --skip-external-locking
              deaktivieren.
            
              Upgrading lock
            
              Der Handler INSERT DELAYED versucht,
              eine Sperre für die Tabelle zu erwirken, um Datensätze
              einzufügen.
            
              Updating
            
Der Thread sucht nach zu aktualisierenden Datensätzen und aktualisiert diese dann.
              updating main table
            
Der Server führt den ersten Teil eines Änderungsvorgangs über mehrere Tabellen aus. Er führt Änderungen nur in der ersten Tabelle aus und speichert Felder und Offsets, die zur Aktualisierung anderer (Referenz-)Tabellen benutzt werden.
              updating reference tables
            
Der Server führt den zweiten Teil eines Änderungsvorgangs über mehrere Tabellen aus und aktualisiert die entsprechenden Datensätze in den anderen Tabellen.
              User Lock
            
              Der Thread wartet auf ein GET_LOCK().
            
              Waiting for tables
            
Der Thread hat eine Mitteilung erhalten, dass die einer Tabelle zugrunde liegende Struktur sich geändert hat und er die Tabelle neu öffnen muss, um die neue Struktur zu erhalten. Um die Tabelle allerdings neu öffnen zu können, muss er warten, bis alle anderen Threads die fragliche Tabelle geschlossen haben.
              Diese Benachrichtigung erfolgt, wenn ein anderer Thread
              FLUSH TABLES oder eine der folgenden
              Anweisungen für die betreffende Tabelle verwendet hat:
              FLUSH TABLES
              ,
              tbl_nameALTER TABLE, RENAME
              TABLE, REPAIR TABLE,
              ANALYZE TABLE oder OPTIMIZE
              TABLE.
            
              waiting for handler insert
            
              Der INSERT DELAYED-Handler hat alle
              anhängigen Einfügeoperationen verarbeitet und wartet auf
              neue.
            
              Writing to net
            
Der Server schreibt ein Paket in das Netzwerk.
Die meisten Zustände entsprechen sehr schnellen Operationen. Wenn ein Thread für mehrere Sekunden in einem dieser Zustände verbleibt, dann weist dies auf ein Problem hin, das untersucht werden muss.
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.
