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处于“正在发送数据"状态是什么意思?


基础教程推荐
- SQL Server:只有 GROUP BY 中的最后一个条目 2021-01-01
- Sql Server 字符串到日期的转换 2021-01-01
- 使用pyodbc“不安全"的Python多处理和数据库访问? 2022-01-01
- SQL Server 2016更改对象所有者 2022-01-01
- SQL Server 中单行 MERGE/upsert 的语法 2021-01-01
- ERROR 2006 (HY000): MySQL 服务器已经消失 2021-01-01
- 无法在 ubuntu 中启动 mysql 服务器 2021-01-01
- 在 VB.NET 中更新 SQL Server DateTime 列 2021-01-01
- 将数据从 MS SQL 迁移到 PostgreSQL? 2022-01-01
- 如何在 SQL Server 的嵌套过程中处理事务? 2021-01-01