MySQL - Puis-je limiter le temps maximum alloué à une requête?
Je suis à la recherche d'un moyen de limiter le niveau maximum du temps d'exécution d'une requête sur le serveur mysql. J'ai pensé que cela pourrait être fait par le biais de la my.cnf
fichier de configuration, mais je ne trouve rien de pertinent dans les docs. Quelqu'un sait si cela pourrait être fait? merci.
source d'informationauteur sa125 | 2011-01-25
Vous devez vous connecter pour publier un commentaire.
Il n'y a aucun moyen de spécifier une durée maximale d'exécution lors de l'envoi d'une requête à exécuter par le serveur.
Cependant, il n'est pas rare d'avoir une tâche cron qui s'exécute à chaque seconde sur votre serveur de base de données, de connexion et de faire quelque chose comme ceci:
Vous pouvez utiliser une requête comme suit:
Mise à JOUR:
Vous devez utiliser max_execution_time à la place.
MAX_STATEMENT_TIME a été renommé max_execution_time dans MySQL 5.7.8.
http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_execution_time
En attendant le Twitter de l'équipe de la sortie de leur changements de MySQL qui la met en œuvre:
- Reduce unnecessary work through improved server-side statement timeout support. This allows the server to proactively cancel queries that run longer than a millisecond-granularity timeout.
Voir http://engineering.twitter.com/2012/04/mysql-at-twitter.html et https://github.com/twitter/mysql/wiki/Statement-Timeout
http://mysqlserverteam.com/server-side-select-statement-timeouts/
Intéressant de mise à niveau. Je vais vérifier cela:
"MySQL 5.7.4 introduit la possibilité de mettre de côté de serveur d'exécution des limites de temps, exprimé en millisecondes, de haut niveau en lecture seule instructions SELECT".