KILL [CONNECTION | QUERY] thread_id
Cada conexión a mysqld se ejecuta en un
flujo separado. Puede ver los flujos en ejecución con el
comando SHOW PROCESSLIST
y matar un flujo
con el comando KILL
.
thread_id
En MySQL 5.0.0, KILL
permite los
modificadores opcionales CONNECTION
o
QUERY
:
KILL CONNECTION
es lo mismo que
KILL
sin modificadores: termina la
conexión asociada con el
thread_id
dado.
KILL QUERY
termina el comando que la
conexión está ejecutando actualmente, pero deja a la
conexión intacta.
Si tiene el permiso PROCESS
, puede ver
todos los flujos, puede matar todos los flujos y comandos. De
otro modo, puede ver y matar sólo sus propios flujos y
comandos.
Puede usar los comandos mysqladmin processlist y mysqladmin kill para examinar y matar flujos.
Nota: No puede usar
KILL
con la biblioteca Embedded MySQL
Server porque el servidor empotrado se ejecuta dentro del
flujo de la aplicación que lo aloja. No crea ningún flujo de
conexión por sí solo.
Cuando hace un KILL
, se activa un flag
específico para el flujo. En la mayoría de casos, puede que
el flujo tarde algo de tiempo en morir, porque el flag kill se
chequea sólo cada ciertos intervalos:
En SELECT
, ORDER BY
y GROUP BY
, el flag se chequea tras
leer un bloque de registros. Si el flag kill está
activado, el comando se aborta.
Durante ALTER TABLE
, el flag kill se
chequea antes de que se lea cada bloque de registros de la
tabla original. Si el flag kill está activado, el comando
se aborta y la tabla temporal se borra.
Durante operaciones UPDATE
o
DELETE
, el flag kill se chequea tras
cada lectura de bloque y tras cada registro borrado o
actualizado. Si el flag kill está activado, el comando se
aborta. Tenga en cuenta que si no está usando
transacciones, los cambios no se deshacen.
GET_LOCK()
aborta y retorna
NULL
.
Un flujo INSERT DELAYED
rápidamente
vuelca (inserta) todos los registros que tiene en memoria
y luego termina.
Si el flujo está en el handler de bloqueo (estado:
Locked
), el bloqueo de tabla se aborta
rápidamente.
Si el flujo está esperando a espacio libre en disco en una llamada de lectura, la escritura se aborta con un mensaje de error "disco lleno".
Advertencia: Matar una
operación REPAIR TABLE
o
OPTIMIZE TABLE
en una tabla
MyISAM
resulta en una tabla que
corrupta y no usable. Cualquier lectura o escritura en una
tabla así falla hasta que la optimiza o repara de nuevo
(sin interrupción).
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.