What does it mean when MySQL is in the state quot;Sending dataquot;?(MySQL处于“正在发送数据状态是什么意思?)
问题描述
如果Mysql查询是什么意思:
What does it mean if the Mysql query:
SHOW PROCESSLIST;
在状态"列中返回正在发送数据"?
returns "Sending data" in the State column?
我想这意味着查询已经执行并且 MySQL 正在向客户端发送结果"数据,但我想知道为什么它需要这么多时间(最多一个小时).
I imagine it means the query has been executed and MySQL is sending "result" Data to the client but I'm wondering why its taking so much time (up to an hour).
谢谢.
推荐答案
这是一种误导性的状态.它应该被称为读取和过滤数据".
This is quite a misleading status. It should be called "reading and filtering data".
这意味着 MySQL
有一些数据存储在磁盘(或内存)中,但尚未读取和发送.它可能是表本身、索引、临时表、排序输出等.
This means that MySQL
has some data stored on the disk (or in memory) which is yet to be read and sent over. It may be the table itself, an index, a temporary table, a sorted output etc.
如果你有一个 1M 的记录表(没有索引),你只需要一个记录,MySQL
仍然会输出状态为发送数据";在扫描表格时,尽管它尚未发送任何内容.
If you have a 1M records table (without an index) of which you need only one record, MySQL
will still output the status as "sending data" while scanning the table, despite the fact it has not sent anything yet.
MySQL 8.0.17 及更高版本:此状态不再单独指示,而是包含在 Executing 状态中.
MySQL 8.0.17 and later: This state is no longer indicated separately, but rather is included in the Executing state.
这篇关于MySQL处于“正在发送数据"状态是什么意思?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:MySQL处于“正在发送数据"状态是什么意思?


基础教程推荐
- 带有WHERE子句的LAG()函数 2022-01-01
- MySQL根据从其他列分组的值,对两列之间的值进行求和 2022-01-01
- while 在触发器内循环以遍历 sql 中表的所有列 2022-01-01
- 如何在 CakePHP 3 中实现 INSERT ON DUPLICATE KEY UPDATE aka upsert? 2021-01-01
- ORA-01830:日期格式图片在转换整个输入字符串之前结束/选择日期查询的总和 2021-01-01
- CHECKSUM 和 CHECKSUM_AGG:算法是什么? 2021-01-01
- MySQL 5.7参照时间戳生成日期列 2022-01-01
- 带更新的 sqlite CTE 2022-01-01
- 从字符串 TSQL 中获取数字 2021-01-01
- 使用 VBS 和注册表来确定安装了哪个版本和 32 位 2021-01-01