sql >> Database >  >> RDS >> Mysql

Hoe de SQL-uitvoeringstijd te beperken?

Om een ​​zoekopdracht automatisch te beëindigen in MySQL na een lange uitvoeringstijd:

  1. Maak een opgeslagen procedure als:

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

    doe dan in de loop van curosr:

    FETCH ID INTO @var_kill_id;
    KILL QUERY @var_kill_id;
    
  2. Creëer EVENT FOR EVERY 5 SECONDS en gewoon CALL de bovenstaande procedure erin.

Opmerking:KILL QUERY doodt gewoon de query en de MySQL-verbinding wordt niet verbroken. zie hier .



  1. Exporteer eenvoudige Excel-gegevens naar MySQL met behulp van PHP

  2. Postgres - hoe rijen met 0-tellingen te retourneren voor ontbrekende gegevens?

  3. Postgres-vensterfunctie en groeperen op uitzondering

  4. Meerdere resultaatsets retourneren vanuit de in MYSQL opgeslagen procedure