sql >> Base de Datos >  >> RDS >> Mysql

Cómo limitar el tiempo de ejecución de sql

Para cancelar automáticamente una consulta en MySQL después de un largo tiempo de ejecución:

  1. Cree un procedimiento almacenado como:

    DECLARE CURSOR cur1 FOR SELECT ID 
                        FROM INFORMATION_SCHEMA.PROCESSLIST 
                        WHERE COMMAND = 'Query' AND TIME > 120;
    

    luego dentro del ciclo de curosr haz:

    FETCH ID INTO @var_kill_id;
    KILL QUERY @var_kill_id;
    
  2. Crear EVENT FOR EVERY 5 SECONDS y solo CALL el procedimiento anterior dentro de él.

Nota:KILL QUERY simplemente elimina la consulta y la conexión MySQL no se interrumpe. ver aquí .