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

MySQL - puis-je limiter le temps maximum autorisé pour l'exécution d'une requête ?

Mettre à jour

Depuis MySQL 5.7, vous pouvez inclure un MAX_EXECUTION_TIME indice d'optimisation dans votre SELECT requêtes pour demander au serveur de l'arrêter après l'heure spécifiée.

Autant que je sache, si vous souhaitez appliquer un délai d'attente à l'échelle du serveur ou si vous vous souciez des requêtes autres que SELECT s, la réponse d'origine reste votre seule option.

Réponse originale

Il n'y a aucun moyen de spécifier une durée d'exécution maximale lors de l'envoi d'une requête au serveur à exécuter.

Cependant, il n'est pas rare d'avoir une tâche cron qui s'exécute toutes les secondes sur votre serveur de base de données, se connectant et faisant quelque chose comme ceci :

  1. AFFICHER LA LISTE DES PROCESSUS
  2. Recherchez toutes les connexions avec un temps de requête supérieur à votre temps maximum souhaité
  3. Exécutez KILL [process id] pour chacun de ces processus