Spec-Zone .ru
спецификации, руководства, описания, API
|
Следующий список описывает поток State
значения, которые связываются с общей
обработкой запроса и не более специализированными действиями, такими как репликация. Многие из них полезны
только для открытия ошибок в сервере.
Это происходит, когда поток составляет таблицу (включая внутренние временные таблицы), в конце функции, которая составляет таблицу. Это состояние используется, даже если таблица не могла бы быть составлена из-за некоторой ошибки.
Сервер находится в процессе выполнения оперативного ALTER TABLE
.
Поток вычисляет a MyISAM
табличные ключевые дистрибутивы (например, для
ANALYZE TABLE
).
Поток проверяет, есть ли у сервера необходимые полномочия выполнить оператор.
Поток выполняет табличную работу проверки.
Поток обработал одну команду и готовится освобождать память и сбрасывать определенные переменные состояния.
Поток сбрасывает измененные табличные данные к диску и закрывает используемые таблицы. Это должно быть быстрой работой. В противном случае проверьте, что у Вас нет полного диска и что диск не находится в очень интенсивном использовании.
committing alter table to storage engine
Сервер закончил оперативное ALTER
TABLE
и фиксирует результат.
Поток преобразовывает внутреннюю временную таблицу из a MEMORY
таблица
к дисковому MyISAM
таблица.
Поток обрабатывает ALTER
TABLE
оператор. Это состояние происходит после того, как таблица с новой структурой была
составлена, но прежде, чем строки будут скопированы в это.
Если оператор имеет отличающийся ORDER BY
и GROUP
BY
критерии, строки сортируются группой и копируются во временную таблицу.
Сервер копирует во временную таблицу в памяти.
Сервер копирует во временную таблицу на диске. Временный набор результатов стал слишком большим (см. Раздел 8.4.3.3, "Использование MySQL How Внутренние Временные таблицы"). Следовательно, поток изменяет временную таблицу от в памяти до находящегося на диске формата, чтобы сохранить память.
Поток обрабатывает ALTER TABLE ... ENABLE KEYS
для a MyISAM
таблица.
Поток обрабатывает a SELECT
это
разрешается, используя внутреннюю временную таблицу.
Поток составляет таблицу. Это включает создание временных таблиц.
Поток создает временную таблицу в памяти или на диске. Если таблица будет составлена в памяти, но
позже будет преобразована в дисковую таблицу, то состояние во время той работы будет Copying to tmp table on disk
.
Сервер выполняется, первая часть многократной таблицы удаляют. Это удаляет только из первой таблицы, и сохраняет столбцы и смещения, которые будут использоваться для того, чтобы удалить из другого (ссылка) таблицы.
deleting from reference tables
Сервер выполняется, вторая часть многократной таблицы удаляют и удаление соответствующих строк от других таблиц.
Поток обрабатывает ALTER TABLE ... DISCARD TABLESPACE
или ALTER TABLE ... IMPORT TABLESPACE
оператор.
Это происходит в конце, но перед уборкой ALTER TABLE
, CREATE VIEW
, DELETE
,
INSERT
,
SELECT
,
или UPDATE
операторы.
Поток начал выполнять оператор.
Поток выполняет операторы в значении init_command
системная переменная.
Поток выполнил команду. Некоторое освобождение от элементов, сделанных во время этого состояния,
включает кэш запроса. Это состояние обычно сопровождается cleaning up
.
Поток выполняется FLUSH TABLES
и ожидает всех потоков, чтобы закрыть их таблицы.
Сервер готовится выполнять естественный язык полнотекстовый поиск.
Это происходит перед инициализацией ALTER
TABLE
, DELETE
, INSERT
, SELECT
, или UPDATE
операторы. Меры, предпринятые сервером в этом состоянии, включают сбрасывание двоичного журнала,
InnoDB
журнал, и некоторые операции уборки кэша запроса.
Для end
состояние, следующие операции могли происходить:
Удаляя записи кэша запроса после того, как данные в таблице изменяются
Запись события к двоичному журналу
Освобождение буферов памяти, включая для блобов
Кто-то отправил a KILL
оператор к потоку и это должно прерваться в следующий раз, когда
это проверяет флаг уничтожения. Флаг проверяется в каждом главном цикле в MySQL, но в некоторых
случаях могло бы все еще потребоваться короткое время для потока, чтобы умереть. Если поток
блокируется некоторым другим потоком, уничтожение вступает в силу, как только другой поток выпускает
свою блокировку.
Поток пишет оператор в медленный журнал запросов.
Это состояние используется для SHOW
PROCESSLIST
состояние.
Начальное состояние для потока соединения, пока клиент не аутентифицировался успешно.
Сервер включает или отключает таблицу, индексируют.
Поток пытается открыть таблицу. Это, должна быть очень быстрая процедура, если что-то не
предотвращает открытие. Например, ALTER
TABLE
или a LOCK TABLE
оператор может предотвратить открытие таблицы, пока
оператор не заканчивается. Это также стоит проверить что Ваш table_open_cache
значение является достаточно большим.
Сервер выполняет начальную оптимизацию для запроса.
Это состояние происходит во время оптимизации запросов.
Сервер готовится выполнять оперативное ALTER
TABLE
.
Поток удаляет ненужные релейные файлы журнала.
Это состояние происходит после обработки запроса, но перед freeing
items
состояние.
Сервер читает пакет из сети.
Запрос использовал SELECT DISTINCT
таким способом, которым MySQL не мог оптимизировать
далеко отличную работу на ранней стадии. Из-за этого MySQL требует, чтобы дополнительный этап удалил
все дублированные строки прежде, чем отправить результат клиенту.
Поток удаляет внутреннюю временную таблицу после обработки a SELECT
оператор. Это состояние не используется, если никакая
временная таблица не создавалась.
Поток переименовывает таблицу.
Поток обрабатывает ALTER
TABLE
оператор, составил новую таблицу, и переименовывает ее, чтобы заменить исходную
таблицу.
Поток получил блокировку для таблицы, но заметил после получения блокировки что измененная структура базовой таблицы. Это освободило блокировку, закрыло таблицу, и пытается вновь открыть это.
Код восстановления использует вид, чтобы создать, индексирует.
Поток завершил многопоточное восстановление для a MyISAM
таблица.
Код восстановления использует ключи создания один за другим через ключевой кэш. Это намного
медленнее чем Repair by sorting
.
Поток откатывает транзакцию.
Для MyISAM
табличные операции, такие как восстановление или анализ,
поток сохраняет новое табличное состояние к .MYI
заголовок файла.
Государство включает информацию, такую как число строк, AUTO_INCREMENT
счетчик, и ключевые дистрибутивы.
Поток делает первую фазу, чтобы найти все строки соответствия прежде, чем обновить их. Это должно
быть сделано если UPDATE
изменяет индексирование, которое используется, чтобы найти
включенные строки.
Sending data
Поток читает и обрабатывает строки для a SELECT
оператор, и передающие данные клиенту. Поскольку операции, происходящие во время этого этого
состояния, имеют тенденцию выполнять большое количество доступа к диску (чтения), это часто - самое
продолжительное состояние во время жизни данного запроса.
Поток начинается ALTER TABLE
работа.
Поток делает вид, чтобы удовлетворить a GROUP BY
.
Поток делает вид, чтобы удовлетворить a ORDER BY
.
Поток сортирует индексные страницы для более эффективного доступа во время a MyISAM
табличная работа оптимизации.
Для a SELECT
оператор, это подобно Creating sort
index
, но для невременных таблиц.
Сервер вычисляет статистику, чтобы разработать план выполнения запроса. Если поток находится в этом состоянии в течение долгого времени, сервер является, вероятно, ограниченным диском выполнением другой работы.
Поток собирается запросить или ожидает внутренней или внешней системной блокировки для таблицы. Если
это состояние вызывается запросами на внешние блокировки, и Вы не используете многократные mysqld серверы, которые получают доступ к тому
же самому MyISAM
таблицы, можно отключить внешние системные блокировки с --skip-external-locking
опция. Однако, внешняя блокировка
отключается по умолчанию, таким образом, вероятно, что эта опция не будет иметь никакого эффекта.
Для SHOW PROFILE
, это состояние означает, что поток запрашивает
блокировку (не ожидающий его).
Поток готовится начинать обновлять таблицу.
Поток ищет строки, чтобы обновить и обновляет их.
Сервер выполняет первую часть многократно-табличного обновления. Это обновляет только первую таблицу, и сохраняет столбцы и смещения, которые будут использоваться для того, чтобы обновить другой (ссылка) таблицы.
Сервер выполняет вторую часть многократно-табличного обновления и обновляет соответствующие строки от других таблиц.
Поток собирается запросить или ожидает консультативной блокировки, которую требуют с a GET_LOCK()
вызвать. Для SHOW PROFILE
,
это состояние означает, что поток запрашивает блокировку (не ожидающий его).
Поток вызвал a SLEEP()
вызвать.
FLUSH
TABLES WITH READ LOCK
) ожидает блокировки фиксации.
FLUSH
TABLES WITH READ LOCK
) ожидает глобальной блокировки чтения.
Waiting for tables
, Waiting for table flush
Поток получил уведомление, что глубинная структура для таблицы изменилась, и это должно вновь открыть таблицу, чтобы получить новую структуру. Однако, чтобы вновь открыть таблицу, это должно ожидать, пока все другие потоки не закрыли рассматриваемую таблицу.
Это уведомление имеет место, если другой поток использовал FLUSH TABLES
или один из следующих операторов на рассматриваемой
таблице: FLUSH TABLES
, tbl_name
ALTER TABLE
, RENAME TABLE
, REPAIR TABLE
, ANALYZE TABLE
, или OPTIMIZE TABLE
.
Сервер ожидает, чтобы получить блокировку, где lock_type
указывает на тип блокировки:
Waiting for event metadata lock
Waiting for global read lock
Waiting for schema metadata lock
Waiting for stored function metadata lock
Waiting for stored procedure metadata lock
Waiting for table level lock
Waiting for table metadata lock
Waiting for trigger metadata lock
Универсальное состояние, в котором поток ожидает условия стать истиной. Никакая определенная информация о состоянии не доступна.
Сервер пишет пакет в сеть.