Spec-Zone.ru › MySQL 9.2

15.7.7.31 Запрос SHOW PROCESSLIST

SHOW [FULL] PROCESSLIST
Важно

Реализация SHOW PROCESSLIST в схеме INFORMATION_SCHEMA устарела и может быть удалена в будущих выпусках MySQL. Рекомендуется использовать реализацию Performance Schema для SHOW PROCESSLIST вместо неё.

Список процессов MySQL указывает операции, которые в данный момент выполняет набор потоков, работающих в сервере. Оператор SHOW PROCESSLIST является одним из источников информации о процессах. Сравнение этого оператора с другими источниками см. в разделе Источники информации о процессах.

Примечание

Доступна альтернативная реализация SHOW PROCESSLIST на основе таблицы Performance Schema processlist, которая, в отличие от стандартной реализации SHOW PROCESSLIST, не требует мьютекса и имеет лучшие характеристики производительности. Подробности см. в разделе 29.12.22.8, «Таблица processlist».

Если у вас есть привилегия PROCESS, вы можете видеть все потоки, даже те, которые принадлежат другим пользователям. В противном случае (без привилегии PROCESS), обычные пользователи имеют доступ к информации о своих собственных потоках, но не к потокам других пользователей, а анонимные пользователи не имеют доступа к информации о потоках.

Без ключевого слова FULL, SHOW PROCESSLIST отображает только первые 100 символов каждого оператора в поле Info.

Оператор SHOW PROCESSLIST очень полезен, если вы получаете сообщение об ошибке “слишком много подключений” и хотите выяснить, что происходит. MySQL резервирует одно дополнительное подключение для учетных записей, имеющих привилегию CONNECTION_ADMIN (или устаревшую привилегию SUPER), чтобы гарантировать, что администраторы всегда смогут подключаться и проверять систему (предполагая, что вы не предоставляете эту привилегию всем своим пользователям).

Потоки можно убить с помощью оператора KILL. См. раздел 15.7.8.4, «Оператор KILL».

Пример вывода SHOW PROCESSLIST:

mysql> SHOW FULL PROCESSLIST\G
*************************** 1. row ***************************
     Id: 1
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 1030455
  State: Waiting for source 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 replica
         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 replica; 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 replica; 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

Вывод SHOW PROCESSLIST содержит следующие столбцы:

  • Id

    Идентификатор подключения. Это то же значение, отображаемое в столбце ID таблицы INFORMATION_SCHEMA PROCESSLIST, отображаемое в столбце PROCESSLIST_ID таблицы Performance Schema threads и возвращаемое функцией CONNECTION_ID() внутри потока.

  • User

    Пользователь MySQL, который выдал оператор. Значение system user относится к потоку, не связанному с клиентом, созданному сервером для обработки внутренних задач, например, потоку обработчика отложенных строк или потоку ввода-вывода (приёмник) или SQL (применитель), используемому на узлах репликации. Для system user в столбце Host хост не указан. unauthenticated user относится к потоку, который стал ассоциированным с подключением клиента, но для которого аутентификация пользователя клиента ещё не произошла. event_scheduler относится к потоку, который отслеживает запланированные события (см. раздел 27.5, «Использование планировщика событий»).

    Примечание

    Значение User system user отличается от привилегии SYSTEM_USER. Первое указывает на внутренние потоки. Последнее различает категории учетных записей системного пользователя и обычного пользователя (см. раздел 8.2.11, «Категории учетных записей»).

  • Host

    Имя хоста клиента, который выдал оператор (кроме system user, для которого хост отсутствует). Имя хоста для подключений TCP/IP отображается в формате host_name:client_port, чтобы облегчить определение клиента, который выполняет ту или иную задачу.

  • db

    База данных по умолчанию для потока или NULL, если ни одна не выбрана.

  • Command

    Тип команды, которую поток выполняет от имени клиента, или Sleep, если сессия простаивает. Описание команд потока см. в разделе 10.14, «Просмотр информации о потоках сервера (процессах)». Значение этого столбца соответствует командам COM_xxx протокола клиент/сервер и переменным состояния Com_xxx. См. раздел 7.1.10, «Переменные состояния сервера».

  • Time

    Время в секундах, в течение которого поток находился в текущем состоянии. Для реплицирующего SQL-потока значение представляет собой количество секунд между меткой времени последнего реплицированного события и реальным временем узла репликации. См. раздел 19.2.3, «Потоки репликации».

  • State

    Действие, событие или состояние, указывающее, чем занимается поток. Описание значений State см. в разделе 10.14, «Просмотр информации о потоках сервера (процессах)».

    Большинство состояний соответствуют очень быстрым операциям. Если поток остаётся в определённом состоянии в течение многих секунд, возможно, есть проблема, которую необходимо расследовать.

  • Info

    Оператор, который выполняет поток, или NULL, если он не выполняет ни одного оператора. Оператор может быть тем, что был отправлен на сервер, или внутренним оператором, если оператор выполняет другие операторы. Например, если оператор CALL выполняет хранимую процедуру, которая выполняет оператор SELECT, значение Info показывает оператор SELECT.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/show-processlist.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API