Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment limiter le temps d'exécution sql

Pour tuer automatiquement une requête dans MySQL après un long temps d'exécution :

  1. Créez une procédure stockée en tant que :

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

    puis à l'intérieur de la boucle de curosr faites :

    FETCH ID INTO @var_kill_id;
    KILL QUERY @var_kill_id;
    
  2. Créer EVENT FOR EVERY 5 SECONDS et juste CALL la procédure ci-dessus à l'intérieur.

Remarque :KILL QUERY tue simplement la requête et la connexion MySQL n'est pas interrompue. voir ici .