Spec-Zone .ru
спецификации, руководства, описания, API
|
threads
таблица содержит строку для каждого потока сервера. Каждая строка
содержит информацию о потоке и указывает, включается ли контроль для этого:
mysql> SELECT * FROM threads\G
*************************** 1. row *************************** THREAD_ID: 1 NAME: thread/sql/main TYPE: BACKGROUND PROCESSLIST_ID: NULL PROCESSLIST_USER: NULL PROCESSLIST_HOST: NULL PROCESSLIST_DB: NULLPROCESSLIST_COMMAND: NULL PROCESSLIST_TIME: 80284 PROCESSLIST_STATE: NULL PROCESSLIST_INFO: NULL PARENT_THREAD_ID: NULL ROLE: NULL INSTRUMENTED: YES...*************************** 4. row *************************** THREAD_ID: 51 NAME: thread/sql/one_connection TYPE: FOREGROUND PROCESSLIST_ID: 34 PROCESSLIST_USER: paul PROCESSLIST_HOST: localhost PROCESSLIST_DB: performance_schemaPROCESSLIST_COMMAND: Query PROCESSLIST_TIME: 0 PROCESSLIST_STATE: Sending data PROCESSLIST_INFO: SELECT * FROM threads PARENT_THREAD_ID: 1 ROLE: NULL INSTRUMENTED: YES...
Если Вы имеете PROCESS
полномочие, можно видеть все потоки. Иначе, можно видеть только свои собственные потоки (то есть, потоки,
связанные с учетной записью MySQL, которую Вы используете).
threads
у таблицы есть эти столбцы:
THREAD_ID
Уникальный идентификатор потока.
NAME
Имя связалось с кодом инструментария потока в сервере. Например, thread/sql/one_connection
соответствует функции потока в коде, ответственном за обработку пользовательского соединения, и
thread/sql/main
стенды для main()
функция
сервера.
TYPE
Тип потока, также FOREGROUND
или BACKGROUND
. Пользовательские потоки соединения являются приоритетными
потоками. Потоки, связанные с внутренним действием сервера, являются фоновыми потоками. Примеры
являются внутренними InnoDB
потоки, "binlog выводят" потоки, отправляющие информацию ведомым
устройствам, и ведомый ввод-вывод и потоки SQL.
PROCESSLIST_ID
Для потоков, которые выводятся на экран в INFORMATION_SCHEMA.PROCESSLIST
таблица, это PROCESSLIST.ID
значение, которое является также значением это CONNECTION_ID()
возвратился бы в пределах того потока. Для
фоновых потоков (потоки, не связанные с пользовательским соединением), PROCESSLIST_ID
0, таким образом, значения не уникальны.
PROCESSLIST_USER
Пользователь связался с приоритетным потоком, NULL
для фонового потока.
PROCESSLIST_HOST
Имя хоста клиента связалось с приоритетным потоком, NULL
для фонового
потока.
PROCESSLIST_DB
База данных значения по умолчанию для потока, или NULL
если нет ни
одного.
PROCESSLIST_COMMAND
Тип команды поток выполняется. Для описаний для команд потока см. Раздел
8.12.5, "Исследуя информацию о Потоке". Значение этого столбца соответствует COM_
команды
клиент-серверного протокола и xxx
Com_
переменные состояния. См. Раздел
5.1.6, "Переменные Состояния Сервера"xxx
PROCESSLIST_TIME
Время в секундах, что поток был в его текущем состоянии.
PROCESSLIST_STATE
Действие, событие, или состояние, которое указывает на то, что делает поток. Для описаний PROCESSLIST_STATE
значения, см. Раздел
8.12.5, "Исследуя информацию о Потоке".
Большинство состояний соответствует очень быстрым операциям. Если поток остается в данном состоянии в течение многих секунд, могла бы быть проблема, которая должна быть исследована.
PROCESSLIST_INFO
Оператор поток выполняется, или NULL
если это не выполняет оператора.
Оператор мог бы быть тем, отправленным серверу, или самому внутреннему оператору, если оператор
выполняет другие операторы. Например, если a CALL
оператор выполняет
хранимую процедуру, которая выполняет a SELECT
оператор, PROCESSLIST_INFO
оцените показывает SELECT
оператор.
PARENT_THREAD_ID
Если этот поток является подпотоком (порожденный другим потоком), это THREAD_ID
значение родительского потока. Порождение потока происходит, например, чтобы обработать вставку
строк от INSERT DELAYED
операторы.
ROLE
Неиспользованный.
INSTRUMENTED
Инструментуется ли поток:
Для приоритетных потоков, начальной буквы INSTRUMENTED
значение определяется тем, соответствует ли учетная запись пользователя, связанная с
потоком, какую-либо строку в setup_actors
таблица. Соответствие основано на значениях
PROCESSLIST_USER
и PROCESSLIST_HOST
столбцы.
Если поток порождает подпоток, соответствие происходит снова для подпотока.
Для фоновых потоков, INSTRUMENTED
YES
по умолчанию. setup_actors
не консультируется, потому что нет никакого
связанного пользователя для фоновых потоков.
Для любого потока, INSTRUMENTED
значение
может быть изменено во время времени жизни потока. Это - единственное threads
столбец таблицы, который может быть изменен.
Для потока, контролирующего, чтобы произойти, этими вещами должна быть истина:
thread_instrumentation
потребитель в setup_consumers
таблица должна быть YES
.
thread.INSTRUMENTED
столбец должен быть
YES
.
Контроль происходит только для тех событий потока, произведенных из
инструментов, которые включаются, как определено в setup_instruments
таблица.
Начальное содержание threads
таблица
основана на существующих потоках, когда инициализация Схемы Производительности происходит. После того новая
строка добавляется каждый раз, когда сервер создает поток.
Удаление строк от threads
таблица
происходит, когда потоки заканчиваются. Для потока, связанного с клиентским сеансом, происходит удаление, когда
сеанс заканчивается. Если клиент имеет, % автоповторно соединяются, включал, и сеанс повторно соединяется после
разъединения сеанс будет связан с новой строкой в threads
таблица (тот, у которого есть различное PROCESSLIST_ID
значение). Начальная буква
INSTRUMENTED
значение для нового потока может отличаться от того из исходного
потока: setup_actors
таблица,
возможно, изменилась тем временем, и если INSTRUMENTED
значение для исходного
потока было изменено после того, как это было инициализировано, то изменение не переносит на новый поток.
threads
столбцы таблицы с именами, имеющими префикс PROCESS_
предоставьте информацию, подобную этому доступному от INFORMATION_SCHEMA.PROCESSLIST
таблица или SHOW PROCESSLIST
оператор. Таким образом все три источника предоставляют
контролирующую поток информацию. Использование threads
отличается от использования других двух источников этими способами:
Доступ к threads
не требует взаимного исключения и оказывает минимальное влияние
на производительность сервера. INFORMATION_SCHEMA.PROCESSLIST
и SHOW PROCESSLIST
имейте отрицательные последствия производительности,
потому что они требуют взаимного исключения.
threads
обеспечивает дополнительную информацию для каждого потока, такой как, является ли это приоритетным или
фоновым потоком, и расположением в пределах сервера, связанного с потоком.
threads
предоставляет информацию о фоновых потоках, таким образом, она может использоваться, чтобы
контролировать действие, другие источники информации потока не могут.
Можно включить или выключить контроль потока. Чтобы управлять контролем
существующих потоков, установите INSTRUMENTED
столбец threads
таблица. Управлять начальной буквой INSTRUMENTED
значение для новых приоритетных потоков, используйте setup_actors
таблица.
По этим причинам, DBA, кто выполняет контрольное использование сервера INFORMATION_SCHEMA.PROCESSLIST
или SHOW PROCESSLIST
может хотеть контролировать использование threads
вместо этого.