Таблица PROCESSLIST схемы информации
Таблица схемы информации PROCESSLIST содержит информацию о работающих потоках.
Аналогичная информация также может быть возвращена с помощью команды SHOW [FULL] PROCESSLIST или команды mariadb-admin processlist.
Она содержит следующие столбцы:
| Столбец | Описание |
|---|---|
ID |
Идентификатор соединения. |
USER |
Пользователь MariaDB. |
HOST |
Хост, с которого подключен этот поток. Для подключений через Unix-сокеты, localhost. Для подключений по TCP/IP добавляется TCP-порт (например, 192.168.1.17:58061 или other-host.company.com:58061). Для system user, этот столбец пуст (''). |
DB |
База данных по умолчанию или NULL в случае отсутствия. |
COMMAND |
Тип выполняемой команды, соответствующий Com_ переменным состояния сервера. См. Значения команд потоков. |
TIME |
Секунды, затраченные потоком на текущую COMMAND до сих пор. |
STATE |
Текущее состояние потока. См. Состояния потоков. |
INFO |
Выполняемый запрос потока или NULL если такового нет. |
TIME_MS |
Время в миллисекундах с микросекундной точностью, затраченное потоком на текущую COMMAND до сих пор (подробнее). |
STAGE |
Этап, на котором находится процесс в данный момент. |
MAX_STAGE |
Максимальное количество этапов. |
PROGRESS |
Прогресс процесса в текущем этапе (0-100%). |
MEMORY_USED |
Память в байтах, используемая потоком. |
MAX_MEMORY_USED |
Максимальная память в байтах, используемая потоком. |
EXAMINED_ROWS |
Строки, просмотренные потоком. Обновляется только для UPDATE, DELETE и аналогичных запросов. Для SELECT и других запросов значение остается нулевым. |
QUERY_ID |
Идентификатор запроса. |
INFO_BINARY |
Информация о двоичных данных |
TID |
Идентификатор потока (MDEV-6756) |
Обратите внимание, что в отличие от MySQL, в MariaDB столбец TIME (и также столбец TIME_MS) не зависит от настроек @TIMESTAMP. Это означает, что его можно надежно использовать и для потоков, которые изменяют @TIMESTAMP (например, для реплицирующего SQL-потока). См. также MySQL Bug #22047.
Вследствие этого, столбец TIME таблицы SHOW FULL PROCESSLIST и INFORMATION_SCHEMA.PROCESSLIST не может использоваться для определения отставания ведомого сервера. Для этого используйте вместо этого столбец Seconds_Behind_Master в выводе SHOW SLAVE STATUS.
Обратите внимание, что поле PROGRESS из схемы информации и поле PROGRESS из SHOW PROCESSLIST отображают разные результаты. SHOW PROCESSLIST показывает общий прогресс, в то время как схема информации показывает прогресс только для текущего этапа. Для получения аналогичного "общего" значения прогресса из information_schema.PROCESSLIST как из SHOW PROCESSLIST, используйте
SELECT CASE WHEN Max_Stage < 2 THEN Progress ELSE (Stage-1)/Max_Stage*100+Progress/Max_Stage END AS Progress FROM INFORMATION_SCHEMA.PROCESSLIST;
Пример
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST\G
*************************** 1. row ***************************
ID: 9
USER: msandbox
HOST: localhost
DB: NULL
COMMAND: Query
TIME: 0
STATE: Filling schema table
INFO: SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
TIME_MS: 0.351
STAGE: 0
MAX_STAGE: 0
PROGRESS: 0.000
MEMORY_USED: 85392
EXAMINED_ROWS: 0
QUERY_ID: 15
INFO_BINARY: SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST
TID: 11838
*************************** 2. row ***************************
ID: 5
USER: system user
HOST:
DB: NULL
COMMAND: Daemon
TIME: 0
STATE: InnoDB shutdown handler
INFO: NULL
TIME_MS: 0.000
STAGE: 0
MAX_STAGE: 0
PROGRESS: 0.000
MEMORY_USED: 24160
EXAMINED_ROWS: 0
QUERY_ID: 0
INFO_BINARY: NULL
TID: 3856
...
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/information-schema-processlist-table/