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:
- PROZESSLISTE ZEIGEN
- Finde alle Verbindungen mit einer Abfragezeit, die größer ist als deine maximal gewünschte Zeit
- Führen Sie KILL [Prozess-ID] für jeden dieser Prozesse aus