Spec-Zone.ru › MariaDB

Общие состояния потоков

В этой статье описываются основные общие состояния потоков. Более подробные списки, относящиеся к отложенным вставкам, репликации, кэшу запросов и планировщику событий, приведены в:

  • Состояния потоков планировщика событий
  • Состояния потоков кэша запросов
  • Состояния потоков мастера
  • Состояния потоков подключения ведомого
  • Состояния потоков ввода-вывода ведомого
  • Состояния потоков SQL ведомого

Они соответствуют значениям STATE, указанным оператором SHOW PROCESSLIST или в таблице Information Schema PROCESSLIST, а также значению PROCESSLIST_STATE, указанному в таблице Performance Schema threads

Значение Описание
После создания Функция, создавшая (или пытавшаяся создать) таблицу (временную или постоянную), только что завершилась.
Анализ Расчёт распределения ключей таблицы, например, при выполнении инструкции ANALYZE TABLE.
Проверка разрешений Проверка достаточности разрешений для выполнения инструкции.
Проверка таблицы Проверка таблицы.
Очистка Подготовка к сбросу переменных состояния и освобождению памяти после выполнения команды.
Закрытие таблиц Запись изменений на диск и закрытие таблицы. Это состояние сохранится только если диск заполнен или нагрузка очень высокая.
Преобразование HEAP в Aria Преобразование внутренней временной таблицы MEMORY в дисковую временную таблицу Aria.
Преобразование HEAP в MyISAM Преобразование внутренней временной таблицы MEMORY в дисковую временную таблицу MyISAM.
Копирование в временную таблицу Новая таблица создана в рамках инструкции ALTER TABLE, и строки готовятся к копированию в неё.
Копирование в групповую таблицу Сортировка строк по группам и копирование во временную таблицу, что происходит, когда в инструкции есть разные критерии GROUP BY и ORDER BY.
Копирование во временную таблицу Копирование во временную таблицу в памяти.
Копирование во временную таблицу на диске Копирование во временную таблицу на диске, так как результат слишком большой, чтобы поместиться в память.
Создание индекса Обработка инструкции ALTER TABLE ... ENABLE KEYS для таблицы Aria или MyISAM.
Создание индекса сортировки Обработка инструкции SELECT, использующей внутреннюю временную таблицу.
Создание таблицы Создание таблицы (временной или постоянной).
Создание временной таблицы Создание временной таблицы (в памяти или на диске).
Удаление из основной таблицы Удаление из первой таблицы в многотабличном удалении, сохранение столбцов и смещений для использования при удалении из других таблиц.
Удаление из таблиц-ссылок Удаление соответствующих строк из вторичных таблиц-ссылок в рамках многотабличного удаления.
discard_or_import_tablespace Обработка инструкции ALTER TABLE ... IMPORT TABLESPACE или ALTER TABLE ... DISCARD TABLESPACE.
Конец Состояние перед окончательной очисткой инструкции ALTER TABLE, CREATE VIEW, DELETE, INSERT, SELECT или UPDATE. Может включать очистку кэша запросов или запись в бинарный журнал или журнал InnoDB.
Выполнение Выполнение инструкции.
Выполнение init_command Выполнение инструкций, указанных опцией --init_command клиента mariadb.
Заполнение таблицы схемы В базе данных information_schema строится таблица.
Освобождение элементов Освобождение элементов из кэша запросов после выполнения команды. Обычно следует за состоянием cleaning up.
Сброс таблиц Выполнение инструкции FLUSH TABLES и ожидание закрытия таблиц другими потоками.
Инициализация FULLTEXT Подготовка к запуску полнотекстового поиска full-text.
Инициализация Подготовка к выполнению инструкции ALTER TABLE, DELETE, INSERT, SELECT или UPDATE. Может включать очистку кэша запросов или запись в бинарный журнал или журнал InnoDB.
Прервано Поток прервётся в следующий раз, когда проверит флаг прерывания. Требует ожидания освобождения всех блокировок.
Заблокировано Запрос заблокирован другим запросом.
Логирование медленных запросов Запись инструкции в журнал медленных запросов.
NULL Состояние, используемое для SHOW PROCESSLIST.
Вход Поток соединения ещё не прошёл аутентификацию.
Управление ключами Включение или выключение индекса таблицы.
Открытие таблицы[ц] Попытка открыть таблицу. Обычно очень быстро, если не достигнут лимит, заданный переменной table_open_cache, или не выполняется ALTER TABLE или LOCK TABLE.
Оптимизация Сервер выполняет начальную оптимизацию запроса.
Подготовка Состояние, возникающее во время оптимизации запроса.
Удаление устаревших релейных журналов Удаляются ненужные релейные журналы.
Конец запроса Обработка запроса завершена, но элементы ещё не освобождены (состояние freeing items).
Чтение файла Сервер читает файл (например, во время LOAD DATA INFILE).
Чтение из сети Сервер читает сетевой пакет.
Удаление дубликатов Удаление дублирующихся строк перед отправкой клиенту. Происходит, когда SELECT DISTINCT используется таким образом, что операция DISTINCT не может быть оптимизирована на более раннем этапе.
Удаление временной таблицы Удаление внутренней временной таблицы после обработки инструкции SELECT.
Переименование Переименование таблицы.
Переименование таблицы результатов Переименование таблицы, которая является результатом инструкции ALTER TABLE, создавшей новую таблицу.
Повторное открытие таблиц Таблица повторно открывается после того, как поток получил блокировку, но структура таблицы изменилась, поэтому блокировка была освобождена.
Ремонт с помощью сортировки Индексы создаются с использованием сортировки. Значительно быстрее, чем связанное Repair with keycache.
Ремонт завершён Многопоточный ремонт завершён.
Ремонт с кэшем ключей Индексы создаются через кэш ключей, по одному. Значительно медленнее, чем связанное Repair by sorting.
Откат Откат транзакции.
Сохранение состояния Сохранение нового состояния таблицы. Например, после анализа таблицы MyISAM, распределения ключей, количества строк и т. д. сохраняются в файле .MYI.
Поиск строк для обновления Поиск строк, соответствующих условиям, перед выполнением UPDATE, что необходимо, когда UPDATE изменит индекс, используемый для UPDATE.
Отправка данных Отправка данных клиенту в рамках обработки инструкции SELECT. Часто самое длительное состояние из-за относительно медленных обращений к диску, которые могут потребоваться.
Настройка Настройка операции ALTER TABLE.
Сортировка по группе Сортировка в рамках инструкции GROUP BY
Сортировка по порядку Сортировка в рамках инструкции ORDER BY
Сортировка индекса Сортировка страниц индекса в рамках операции оптимизации таблицы.
Сортировка результата Обработка инструкции SELECT с использованием не временной таблицы.
Статистика Вычисление статистики для определения плана выполнения запроса. Обычно кратковременное состояние, если сервер не ограничен диском.
Системная блокировка Запрос или ожидание внешней блокировки для определённой таблицы. Двигатель хранения определяет тип внешней блокировки. Например, двигатель хранения MyISAM использует файловые блокировки. Однако внешние блокировки MyISAM отключены по умолчанию из-за значения переменной skip_external_locking по умолчанию. Транзакционные двигатели хранения, такие как InnoDB, также регистрируют транзакцию или инструкцию с координатором транзакций MariaDB, пока в этом состоянии потока. См. MDEV-19391 для получения дополнительной информации.
Блокировка таблицы Запрос внутренней блокировки таблицы после получения внешней блокировки таблицы. Это состояние потока происходит после состояния потока Системная блокировка.
Обновление Начинается обновление таблицы.
Обновление Поиск и обновление строк в таблице.
Обновление основной таблицы Обновление первой таблицы в многотабличном обновлении и сохранение столбцов и смещений для использования в других таблицах.
Обновление таблиц-ссылок Обновление вторичных (ссылочных) таблиц в многотабличном обновлении.
Обновление статуса Это состояние возникает после завершения выполнения запроса. Если время выполнения запроса превышает long_query_time, то Slow_queries увеличивается, а если включён журнал медленных запросов, то запрос регистрируется. Если включён плагин SERVER_AUDIT, то запрос также регистрируется в журнале аудита на этом этапе. Если включён плагин userstats, то на этом этапе также обновляются статистические данные о ЦП.
Блокировка пользователя Запрос или ожидание консультативной блокировки из вызова GET LOCK(). Для SHOW PROFILE означает только запрос блокировки.
Ожидание пользователя Выполнен вызов SLEEP().
Ожидание блокировки фиксации FLUSH TABLES WITH READ LOCK ждёт блокировку фиксации или инструкция, приводящая к явной или неявной фиксации, ждёт освобождения блокировки чтения. Это состояние называлось Waiting for all running commits to finish в более ранних версиях.
Ожидание глобальной блокировки чтения Ожидание глобальной блокировки чтения.
Ожидание блокировки таблицы Внешняя блокировка получена, внутренняя блокировка запрошена. Происходит после состояния System lock. В более ранних версиях это называлось Table lock.
Ожидание блокировки xx Ожидание получения блокировки типа xx.
Ожидание условия Ожидание наступления неопределенного условия.
Запись в сеть Запись пакета в сеть.
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется предварительно MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/general-thread-states/

Spec-Zone.ru

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