¿Qué significa cuando MySQL está en el estado "Enviando datos"?


¿Qué significa si la consulta Mysql:

SHOW PROCESSLIST;

Devuelve "Enviar datos" en la columna Estado?

Imagino que significa que la consulta se ha ejecutado y MySQL está enviando Datos "resultado" al cliente, pero me pregunto por qué está tomando tanto tiempo (hasta una hora).

Gracias.

 131
Author: JakeGould, 2012-04-27

2 answers

Este es un estado bastante engañoso. Debería llamarse "lectura y filtrado de datos".

Esto significa que MySQL tiene algunos datos almacenados en el disco (o en la memoria) que aún no se han leído y enviado. Puede ser la propia tabla, un índice, una tabla temporal, una salida ordenada, etc.

Si tiene una tabla de registros de 1M (sin un índice) de la que solo necesita un registro, MySQL mostrará el estado como "envío de datos" mientras escanea la tabla, a pesar de que no se ha enviado nada todavía.

 194
Author: Quassnoi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-27 09:23:00

En este estado:

El hilo es lectura y procesamiento de filas para una Declaración SELECT, y enviando datos al cliente.

Debido a que las operaciones que ocurren durante este este estado tienden a realizar grandes cantidades de acceso al disco (lecturas) .

Es por eso que toma más tiempo completarse y también lo es el estado de mayor duración durante la vida útil de una consulta dada.

 14
Author: Venky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-07 17:37:33