Aggiorna
A partire da MySQL 5.7, puoi includere un MAX_EXECUTION_TIME
suggerimento sull'ottimizzatore nel tuo SELECT
query per indicare al server di terminarlo dopo il tempo specificato.
Per quanto ne so, se desideri applicare un timeout a livello di server o se ti interessano query oltre a SELECT
s, la risposta originale è ancora la tua unica opzione.
Risposta originale
Non è possibile specificare un tempo massimo di esecuzione quando si invia una query al server per l'esecuzione.
Tuttavia, non è raro avere un lavoro cron che viene eseguito ogni secondo sul server del database, collegandosi e facendo qualcosa del genere:
- MOSTRA ELENCO PROCESSO
- Trova tutte le connessioni con un tempo di interrogazione maggiore del tempo massimo desiderato
- Esegui KILL [id processo] per ciascuno di questi processi