sql >> Database >  >> RDS >> Mysql

MySQL - kan ik de maximaal toegestane tijd voor het uitvoeren van een query beperken?

Bijwerken

Vanaf MySQL 5.7 kunt u een MAX_EXECUTION_TIME optimalisatie hint in uw SELECT vragen om de server opdracht te geven het na de opgegeven tijd te beëindigen.

Voor zover ik weet, als je een serverbrede time-out wilt afdwingen, of als je naast SELECT ook vragen hebt, s, het oorspronkelijke antwoord is nog steeds uw enige optie.

Oorspronkelijk antwoord

Er is geen manier om een ​​maximale runtime op te geven wanneer een query naar de server wordt gestuurd om uit te voeren.

Het is echter niet ongebruikelijk om een ​​cron-taak te hebben die elke seconde op uw databaseserver wordt uitgevoerd, waarbij u verbinding maakt en zoiets als dit doet:

  1. PROCESSLIJST TONEN
  2. Vind alle connecties met een zoektijd die groter is dan de maximaal gewenste tijd
  3. Voer KILL [proces-id] uit voor elk van die processen


  1. Plezier met berichten

  2. Genereer datumbereik uit twee datumkolommen

  3. De DBCC_OBJECT_METADATA-vergrendeling

  4. Een database ontwerpen voor een online banenportaal