Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je arrêter une requête MySQL si elle prend trop de temps ?

Il existe un joli script Perl sur CPAN pour faire exactement cela :http ://search.cpan.org/~rsoliv/mysql-genocide-0.03/mysql-genocide

Il suffit de le programmer pour qu'il s'exécute avec les paramètres appropriés. Créez un fichier CRONtab /etc/cron.d/mysql_query_timeout pour le programmer pour qu'il s'exécute toutes les minutes :

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

Où 7200 est le temps d'exécution maximal autorisé en secondes. Le commutateur -s filtre toutes les requêtes sauf SELECT. Le commutateur -K demande au script de tuer les processus correspondants.

L'utilisateur root doit pouvoir exécuter les outils mysql locaux sans authentification, sinon vous devrez fournir des informations d'identification sur la ligne de commande.