sql >> Base de Datos >  >> RDS >> Mysql

MySQL:¿puedo limitar el tiempo máximo permitido para que se ejecute una consulta?

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:

  1. MOSTRAR LISTA DE PROCESOS
  2. Encuentre todas las conexiones con un tiempo de consulta superior al tiempo máximo deseado
  3. Ejecute KILL [ID de proceso] para cada uno de esos procesos