Mysql
 sql >> Database >  >> RDS >> Mysql

Come limitare il tempo di esecuzione di sql

Per terminare automaticamente una query in MySQL dopo un lungo tempo di esecuzione:

  1. Crea una procedura memorizzata come:

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

    quindi all'interno del ciclo di curosr fai:

    FETCH ID INTO @var_kill_id;
    KILL QUERY @var_kill_id;
    
  2. Crea EVENT FOR EVERY 5 SECONDS e solo CALL la procedura sopra al suo interno.

Nota:KILL QUERY uccide semplicemente la query e la connessione MySQL non viene interrotta. vedi qui .