Справочное руководство по MySQL

         

Синтаксис команды KILL

KILL thread_id

Каждое соединение с mysqld запускается в отдельном потоке. При помощи команды SHOW PROCESSLIST можно просмотреть список запущенных потоков, а при помощи команды KILL thread_id - удалить поток.

Если у вас есть привилегия PROCESS, можно просмотреть все потоки. Обладая привилегией SUPER, можно удалять любые потоки. В противном случае можно


просматривать и удалять только свои собственные потоки.

Для просмотра и удаления потоков можно также применять команды mysqladmin processlist и mysqladmin kill.

При использовании команды KILL для потока устанавливается специальный флаг kill flag.

В большинстве случаев удаление потока занимает некоторое время, поскольку этот флаг проверяется с определенным интервалом.

  • В циклах SELECT, ORDER BY и GROUP BY флаг проверяется только после считывания блока строк. Если установлен флаг удаления, то выполнение оператора будет отменено.
  • При выполнении команды ALTER TABLE флаг удаления проверяется перед считыванием каждого блока строк из исходной таблицы. Если флаг установлен, то выполнение команды отменяется и временная таблица удаляется. При выполнении команд UPDATE TABLE и DELETE TABLE флаг удаления проверяется после каждого считывания блока, а также после каждого обновления или удаления строки. Если флаг удаления установлен, то выполнение оператора отменяется. Обратите внимание: если не используются транзакции, то отменить изменения будет невозможно!
  • GET_LOCK() будет отменен при помощи NULL.
  • Поток INSERT DELAYED быстро сбросит все строки, которые он содержит в памяти и будет удален.
  • Если поток находится в заблокированной таблице (состояние: Locked), то блокировка таблицы будет быстро отменена.
  • Если поток ожидает освобождения дискового пространства в запросе write, запись будет отменена с выдачей сообщения о переполнении диска.
Содержание раздела