Mysql
 sql >> Database >  >> RDS >> Mysql

Come posso interrompere una query MySQL se impiega troppo tempo?

C'è un bel script Perl su CPAN per fare proprio questo:http ://search.cpan.org/~rsoliv/mysql-genocide-0.03/mysql-genocide

Basta programmarlo per l'esecuzione con i parametri appropriati. Crea un file CRONtab /etc/cron.d/mysql_query_timeout per programmarne l'esecuzione ogni minuto:

* * * * * root /path/to/mysql-genocide -t 7200 -s -K

Dove 7200 è il tempo di esecuzione massimo consentito in secondi. L'opzione -s filtra tutte le query tranne SELECT. L'opzione -K indica allo script di terminare i processi di corrispondenza.

L'utente root dovrebbe essere in grado di eseguire gli strumenti mysql locali senza autenticazione, altrimenti dovrai fornire le credenziali sulla riga di comando.