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

MySQL - kann ich die maximal zulässige Zeit für die Ausführung einer Abfrage begrenzen?

Aktualisieren

Ab MySQL 5.7 können Sie eine MAX_EXECUTION_TIME Optimierungshinweis in Ihrem SELECT Abfragen, um den Server anzuweisen, ihn nach der angegebenen Zeit zu beenden.

Soweit ich weiß, wenn Sie ein serverweites Timeout erzwingen möchten oder wenn Sie sich für Abfragen neben SELECT interessieren s, die ursprüngliche Antwort ist immer noch Ihre einzige Option.

Originalantwort

Es gibt keine Möglichkeit, eine maximale Laufzeit anzugeben, wenn eine Abfrage zur Ausführung an den Server gesendet wird.

Es ist jedoch nicht ungewöhnlich, dass ein Cron-Job jede Sekunde auf Ihrem Datenbankserver ausgeführt wird, eine Verbindung herstellt und etwa Folgendes tut:

  1. PROZESSLISTE ZEIGEN
  2. Finde alle Verbindungen mit einer Abfragezeit, die größer ist als deine maximal gewünschte Zeit
  3. Führen Sie KILL [Prozess-ID] für jeden dieser Prozesse aus