Atualizar
A partir do MySQL 5.7, você pode incluir um
MAX_EXECUTION_TIME
dica do otimizador em seu SELECT
consultas para instruir o servidor a encerrá-lo após o tempo especificado. Até onde eu sei, se você deseja impor um tempo limite em todo o servidor ou se você se preocupa com consultas além de
SELECT
s, a resposta original ainda é sua única opção. Resposta original
Não há como especificar um tempo máximo de execução ao enviar uma consulta ao servidor para execução.
No entanto, não é incomum ter um cron job que é executado a cada segundo em seu servidor de banco de dados, conectando-se e fazendo algo assim:
- MOSTRAR LISTA DE PROCESSOS
- Encontre todas as conexões com um tempo de consulta maior que o tempo máximo desejado
- Execute KILL [process id] para cada um desses processos