Application des limites de temps d'exécution pour les requêtes MySQL
Lors de l'exécution de requêtes MySQL, vous pouvez rencontrer des scénarios dans lesquels des temps d'exécution excessifs deviennent indésirables. Pour atténuer cela, MySQL a introduit un mécanisme permettant de définir des limites d'exécution maximales pour certaines requêtes.
Comment définir des limites de temps d'exécution
À partir de MySQL 5.7.4, vous pouvez spécifiez les délais d'exécution en millisecondes à l'aide de l'indice MAX_EXECUTION_TIME :
SELECT /*+ MAX_EXECUTION_TIME(1000) */ * FROM table;
où 1000 représente le maximum temps en millisecondes. Cependant, cet indice ne fonctionne que pour les instructions SELECT en lecture seule.
Variable renommée dans MySQL 5.7.8
Dans MySQL 5.7.8, l'indice a été renommé max_execution_time . En conséquence, la requête modifiée deviendrait :
SELECT /*+ max_execution_time(1000) */ * FROM table;
Limitations
Il est important de noter que cette limite de temps d'exécution s'applique uniquement à l'instruction SELECT la plus externe. Si la requête contient des requêtes imbriquées ou des sous-requêtes, la limite ne peut pas être héritée. De plus, cette fonctionnalité n'est pas disponible pour d'autres opérations telles que les instructions INSERT, UPDATE ou DELETE.
Conclusion
En utilisant l'indice MAX_EXECUTION_TIME, vous pouvez contrôler la durée maximale MySQL passe à exécuter certaines requêtes SELECT en lecture seule. Cela permet d'empêcher les requêtes incontrôlables de monopoliser les ressources du serveur et garantit de meilleures performances dans les scénarios où le temps d'exécution est critique.
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!