Matar todas las consultas de un usuario


Icono de sql Puede que porque ese usuario está realizando consultas a una tabla que está marcada como "crashed" o que la tabla no tiene correctamente los indices o que simplemente las consultas tardan demasiado y se han acumulado.

Las podemos ver prefectamente estancadas en "SHOW PROCESSLIST" . Ahora ya no hay que empezar a matar cada una de las conultas ya que con esta query lo podemos hacer del tirón.

SELECT CONCAT('KILL ',id,';') FROM `information_schema`.`processlist` WHERE `user`='root' AND `time` > 200 INTO OUTFILE '/tmp/a.txt'; source /tmp/a.txt;

Una explicación para el que la necesite. Realiza una consulta para sacar todas las consultas que tenga el usuario root y que estén en funcionamiento desde hace 200 segundos. Recoje los ids de las consultas y las concatena junto con un KILL y un punto y coma al final. Por lo tanto construye por cada consulta con esas condiciones otra consulta del tipo "KILL 1234;" y las guarda todas juntas en el fichero /tmp/a.txt" luego ejecutas el fichero con source y ya está.