Comprendre l'état « Envoi de données » dans MySQL
Lors de l'exécution de SHOW PROCESSLIST ; requête dans MySQL, vous pouvez rencontrer le statut « Envoi de données » dans la colonne État. Ce statut indique que MySQL a commencé à transmettre des données au client. Cependant, ce processus peut parfois prendre un temps important, pouvant aller jusqu'à une heure.
Contrairement à une idée répandue, « Envoi de données » n'implique pas que la requête a été entièrement traitée. Au lieu de cela, cela signifie que MySQL récupère toujours les données du disque ou de la mémoire pour répondre aux exigences de la requête. Ces données peuvent être liées aux tables, aux index, aux tables temporaires ou même aux résultats triés.
Par exemple, si vous avez une table de 1 million d'enregistrements (sans index) et que vous n'avez besoin que d'un seul enregistrement, MySQL affichera toujours l'état "Envoi de données" lors de l'analyse de la table entière. En effet, MySQL n'a encore transmis aucune donnée malgré la recherche active de l'enregistrement demandé.
Modifications dans MySQL 8.0.17 et versions ultérieures
À partir de MySQL 8.0.17 , l'état "Envoi de données" n'est plus signalé séparément. Au lieu de cela, il est incorporé dans l'état « En cours d'exécution ». Ce changement simplifie les informations de statut et reflète mieux les activités de traitement en cours.
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!