Actualizar
A partir de MySQL 5.7, puede incluir un MAX_EXECUTION_TIME
sugerencia de optimizador en su SELECT
consultas para indicarle al servidor que lo termine después del tiempo especificado.
Hasta donde yo sé, si desea imponer un tiempo de espera en todo el servidor, o si le interesan las consultas además de SELECT
s, la respuesta original sigue siendo tu única opción.
Respuesta original
No hay forma de especificar un tiempo de ejecución máximo al enviar una consulta al servidor para que se ejecute.
Sin embargo, no es raro tener un trabajo cron que se ejecuta cada segundo en su servidor de base de datos, conectándose y haciendo algo como esto:
- MOSTRAR LISTA DE PROCESOS
- Encuentre todas las conexiones con un tiempo de consulta superior al tiempo máximo deseado
- Ejecute KILL [ID de proceso] para cada uno de esos procesos