sql >> Databasteknik >  >> RDS >> Mysql

Hur man begränsar exekveringstiden för sql

För att automatiskt döda en fråga i MySQL efter en lång körningstid:

  1. Skapa en lagrad procedur som:

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

    sedan innanför curosrs loop gör:

    FETCH ID INTO @var_kill_id;
    KILL QUERY @var_kill_id;
    
  2. Skapa EVENT FOR EVERY 5 SECONDS och bara CALL ovanstående procedur inuti den.

Obs:KILL QUERY dödar bara frågan och MySQL-anslutningen bryts inte. se här .



  1. Navigera i SQL Server-felloggar

  2. Få följare på ett posteffektivt sätt i laravel 5.1

  3. mysql join-tabell på sig själv

  4. Använda Python och MySQL i ETL-processen:SQLAlchemy