Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL - posso limitar o tempo máximo permitido para uma consulta ser executada?

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:
  1. MOSTRAR LISTA DE PROCESSOS
  2. Encontre todas as conexões com um tempo de consulta maior que o tempo máximo desejado
  3. Execute KILL [process id] para cada um desses processos