Application des limites de temps d'exécution des requêtes dans MySQL
Question : Puis-je configurer MySQL pour restreindre le temps d'exécution des requêtes ?
Réponse : Historiquement, MySQL ne disposait pas d'un mécanisme intégré permettant de limiter le temps d'exécution des requêtes. Cependant, les mises à jour récentes de MySQL 5.7 introduisent l'indice d'optimisation MAX_EXECUTION_TIME.
Indice d'optimisation MAX_EXECUTION_TIME :
À partir de MySQL 5.7, vous pouvez inclure l'indice d'optimisation MAX_EXECUTION_TIME dans les requêtes SELECT. . Cet indice demande au serveur de mettre fin à la requête si elle dépasse le délai spécifié.
SELECT * FROM table_name WHERE condition LIMIT 1 MAX_EXECUTION_TIME=10;
Délai d'expiration à l'échelle du serveur :
Si vous avez besoin d'un délai d'attente à l'échelle du serveur délai d'attente ou besoin de limiter les requêtes autres que les SELECT, la réponse originale fournie reste votre meilleure option.
Approche de la tâche Cron :
La réponse originale suggère de configurer une tâche cron qui vérifie et met périodiquement fin à toutes les requêtes dépassant un délai prédéfini. Cette approche implique d'exécuter les étapes suivantes :
Considérations supplémentaires :
Bien que l'indice MAX_EXECUTION_TIME soit pratique, il ne s'applique qu'aux requêtes SELECT et ne peut pas être appliqué au niveau du serveur. L'approche des tâches cron fournit une solution plus robuste pour appliquer des délais pour tous les types de requêtes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!