En ocasiones, la ejecución de scripts en nuestra base de datos MySQL se puede ver ralentizada por múltiples causas, como la falta de optimización de las consultas o una alta carga de procesos corriendo, lo que produce que los nuevas consultas se queden "a la cola" esperando ser ejecutadas con la consecuencia ralentización del sistema.
Podemos ver los procesos que tenemos corriendo en nuestro servidor MySQL, accediendo mediante SSH ( Ver el tip anterior de cómo conectarse a mysql mediante ssh) y ejecutando el comando :
show processlist;
Nos mostrará la relación de procesos que se están ejecutando en el servidor, con su identificador, su tiempo de ejecución y la consulta ejecutada. Esta consulta, si es muy larga, se puede ver truncada. Para ver las consultas completas, utilizaremos:
show full processlist;
Para "matar" un proceso, primero debemos conocer su id mediante el comando anterior y a continuación eliminarlo con:
kill identificador_proceso;
Ej.- kill 298188;
Pero este es un proceso tedioso, ya que si necesitamos matar 20 ó 30 consultas, se nos puede hacer eterno.
Podemos simplificar el proceso, mostrando en pantalla la lista de procesos a "matar" con una sencilla consulta:
select concat('KILL ',id,';') from information_schema.processlist where user='nombre_usuario_bbdd';
Nos mostrará la relación de consultas a eliminar, con lo que sólo tenemos que copiar/pegar:
No hay comentarios:
Publicar un comentario