### 8.14.1 Accessing the Process List

 The following discussion enumerates the sources of process information, the privileges required to see process information, and describes the content of process list entries.

* [Sources of Process Information](processlist-access.html#processlist-sources)

* [Privileges Required to Access the Process List](processlist-access.html#processlist-privileges)

* [Content of Process List Entries](processlist-access.html#processlist-content)

#### Sources of Process Information

 Process information is available from these sources:

* The [`SHOW PROCESSLIST`](show-processlist.html) statement: [Section 13.7.7.29, “SHOW PROCESSLIST Statement”](show-processlist.html)

* The [**mysqladmin processlist**](mysqladmin.html) command: [Section 4.5.2, “mysqladmin — A MySQL Server Administration Program”](mysqladmin.html)

* The `INFORMATION_SCHEMA` [`PROCESSLIST`](information-schema-processlist-table.html) table: [Section 26.3.23, “The INFORMATION\_SCHEMA PROCESSLIST Table”](information-schema-processlist-table.html)

* The Performance Schema [`processlist`](performance-schema-processlist-table.html) table: [Section 27.12.21.5, “The processlist Table”](performance-schema-processlist-table.html)

* The Performance Schema [`threads`](performance-schema-threads-table.html) table columns with names having a prefix of `PROCESSLIST_`: [Section 27.12.21.6, “The threads Table”](performance-schema-threads-table.html)

* The `sys` schema [`processlist`](sys-processlist.html) and [`session`](sys-session.html) views: [Section 28.4.3.22, “The processlist and x$processlist Views”](sys-processlist.html), and [Section 28.4.3.33, “The session and x$session Views”](sys-session.html)

 The [`threads`](performance-schema-threads-table.html) table compares to [`SHOW PROCESSLIST`](show-processlist.html), `INFORMATION_SCHEMA` [`PROCESSLIST`](information-schema-processlist-table.html), and [**mysqladmin processlist**](mysqladmin.html) as follows:

* Access to the [`threads`](performance-schema-threads-table.html) table does not require a mutex and has minimal impact on server performance. The other sources have negative performance consequences because they require a mutex.

  Note

   As of MySQL 8.0.22, an alternative implementation for [`SHOW PROCESSLIST`](show-processlist.html) is available based on the Performance Schema [`processlist`](performance-schema-processlist-table.html) table, which, like the [`threads`](performance-schema-threads-table.html) table, does not require a mutex and has better performance characteristics. For details, see [Section 27.12.21.5, “The processlist Table”](performance-schema-processlist-table.html).

* The [`threads`](performance-schema-threads-table.html) table displays background threads, which the other sources do not. It also provides additional information for each thread that the other sources do not, such as whether the thread is a foreground or background thread, and the location within the server associated with the thread. This means that the [`threads`](performance-schema-threads-table.html) table can be used to monitor thread activity the other sources cannot.

* You can enable or disable Performance Schema thread monitoring, as described in [Section 27.12.21.6, “The threads Table”](performance-schema-threads-table.html).

 For these reasons, DBAs who perform server monitoring using one of the other thread information sources may wish to monitor using the [`threads`](performance-schema-threads-table.html) table instead.

 The `sys` schema [`processlist`](sys-processlist.html) view presents information from the Performance Schema [`threads`](performance-schema-threads-table.html) table in a more accessible format. The `sys` schema [`session`](sys-session.html) view presents information about user sessions like the `sys` schema [`processlist`](sys-processlist.html) view, but with background processes filtered out.

#### Privileges Required to Access the Process List

 For most sources of process information, if you have the [`PROCESS`](privileges-provided.html#priv_process) privilege, you can see all threads, even those belonging to other users. Otherwise (without the [`PROCESS`](privileges-provided.html#priv_process) privilege), nonanonymous users have access to information about their own threads but not threads for other users, and anonymous users have no access to thread information.

 The Performance Schema [`threads`](performance-schema-threads-table.html) table also provides thread information, but table access uses a different privilege model. See [Section 27.12.21.6, “The threads Table”](performance-schema-threads-table.html).

#### Content of Process List Entries

 Each process list entry contains several pieces of information. The following list describes them using the labels from [`SHOW PROCESSLIST`](show-processlist.html) output. Other process information sources use similar labels.

* `Id` is the connection identifier for the client associated with the thread.

* `User` and `Host` indicate the account associated with the thread.

* `db` is the default database for the thread, or `NULL` if none has been selected.

* `Command` and `State` indicate what the thread is doing.

   Most states correspond to very quick operations. If a thread stays in a given state for many seconds, there might be a problem that needs to be investigated.

   The following sections list the possible `Command` values, and `State` values grouped by category. The meaning for some of these values is self-evident. For others, additional description is provided.

  Note

   Applications that examine process list information should be aware that the commands and states are subject to change.

* `Time` indicates how long the thread has been in its current state. The thread's notion of the current time may be altered in some cases: The thread can change the time with [`SET TIMESTAMP = *`value`*`](set-variable.html). For a replica SQL thread, the value is the number of seconds between the timestamp of the last replicated event and the real time of the replica host. See [Section 17.2.3, “Replication Threads”](replication-implementation-details.html).

* `Info` indicates the statement the thread is executing, or `NULL` if it is executing no statement. For [`SHOW PROCESSLIST`](show-processlist.html), this value contains only the first 100 characters of the statement. To see complete statements, use [`SHOW FULL PROCESSLIST`](show-processlist.html) (or query a diffferent process information source).

