Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como limitar o tempo de execução do sql


Para matar automaticamente uma consulta no MySQL após um longo tempo de execução:

  1. Crie um procedimento armazenado como:
    DECLARE CURSOR cur1 FOR SELECT ID 
                        FROM INFORMATION_SCHEMA.PROCESSLIST 
                        WHERE COMMAND = 'Query' AND TIME > 120;
    

    então dentro do loop do curosr faça:
    FETCH ID INTO @var_kill_id;
    KILL QUERY @var_kill_id;
    

  2. Crie EVENT FOR EVERY 5 SECONDS e apenas CALL o procedimento acima dentro dele.

Nota:KILL QUERY apenas mata a consulta e a conexão do MySQL não é interrompida. veja aqui .