Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So begrenzen Sie die SQL-Ausführungszeit

So beenden Sie eine Abfrage in MySQL nach einer langen Ausführungszeit automatisch:

  1. Erstellen Sie eine gespeicherte Prozedur als:

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

    dann innerhalb der Curosr-Schleife tun:

    FETCH ID INTO @var_kill_id;
    KILL QUERY @var_kill_id;
    
  2. Erstellen Sie EVENT FOR EVERY 5 SECONDS und einfach CALL das obige Verfahren darin.

Hinweis:KILL QUERY beendet nur die Abfrage und die MySQL-Verbindung wird nicht unterbrochen. siehe hier .