4.5.5 Синтаксис команды 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, запись будет отменена с выдачей сообщения о переполнении диска.
Add your own comment.