KILL thread_id
Cada conexão ao mysqld
executa em uma thread
separada. Você pode ver quais threas estão em execução com o
comando SHOW PROCESSLIST
e matar uma thread
com o comando KILL thread_id
.
Se você tiver o privilégio PROCESS
, você
pode ver todas as threads. Se você tiver o privilégio
SUPER
, você pode matar todas as threads.
Caso contrário, você pode ver e matar somente suas próprias
threads.
Você também pode usar os comandos mysqladmin
processlist
e mysqladmin kill
para
examinar e matar threads.
Nota: Atualmente você não pode utilizar
KILL
com a biblioteca do servidor MySQL
embutido, porque o servidor embutido apenas roda dentro das
threads da aplicação, ela não cria threads de conexões por
si própria.
Quando você utiliza um KILL
, um sinal (flag)
kill
especifico é configurado para a thread.
Na maioria dos casos pode levar algum tempo para a thread morrer pois o sinal kill só é checado em intervalos específicos.
Nos loops SELECT
, ORDER
BY
e GROUP BY
, o sinal é
checado depois de ler um bloco de registros. Se o sinal kill
está habilitado a instrução é abortada.
Na execução de um ALTER TABLE
o sinal
kill é conferido antes de cada bloco de registros ser lido
da tabela original. Se o sinal kill foi habilitado, o
comando é abortado e a tabela temporária apagada.
Ao fazer um UPDATE TABLE
and
DELETE TABLE
, o sinal de kill é
conferido depois de que cada bloco é lido e depois de cada
atualização ou remoção de registro. Se o sinal kill
está habilitado, a instrução é abortada. Note que se
você não estiver utilizando transações, as alterações
não irão ser desfeitas!
GET_LOCK()
irá aborar com
NULL
.
Uma thread INSERT DELAYED
irá
rapidamente descarregar todos registros que estiverem em
memória e morrer.
Se a thread estiver no manipulador de bloqueio de tabelas
(status: Locked
), o bloqueio de tabela
será abortado rapidamente.
Se a thread estiver esperando por espaço livre em disco
numa chamada write
, a escrita é abortada
com uma mensagem de espaço em disco insuficiente.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.