10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 36.3 mb
PDF (A4)- 36.3 mb
手册页(TGZ)- 235.4 kb
手册页(邮政编码)- 347.1 kb
信息(Gzip)- 3.3 mb
信息(邮政编码)- 3.3 mb
本手册节选

8.14.3一般线程状态

下面的列表描述了线程状态与一般查询处理相关的值,而不是与复制等更专门的活动相关的值。其中许多方法仅用于查找服务器中的错误。

  • 后创建

    当线程在创建表的函数末尾创建一个表(包括内部临时表)时,就会发生这种情况。即使由于某些错误而无法创建表,也会使用此状态。

  • 改变表

    服务器正在执行就地执行ALTER TABLE

  • 分析

    线程正在计算aMyISAM表键分布(例如,for分析表).

  • 检查权限

    线程正在检查服务器是否具有执行语句所需的特权。

  • 检查表

    线程正在执行表检查操作。

  • 清理

    线程已经处理了一个命令,准备释放内存并重置某些状态变量。

  • 关闭表

    线程正在将更改的表数据刷新到磁盘,并关闭使用的表。这次行动应该很快。如果不是,请确认您的磁盘没有满,并且磁盘没有被大量使用。

  • 将堆转换为磁盘

    对象转换为内部临时表内存表到磁盘上的表。

  • 复制到TMP表

    线程正在处理ALTER TABLE声明。此状态发生在具有新结构的表创建之后,但在将行复制到表中之前。

    对于处于此状态的线程,可以使用Performance Schema获取复制操作的进度。看到第25.12.5节“性能方案阶段事件表”

  • 复制到组表

    如果一个语句有不同的命令而且集团标准中,行按组排序并复制到临时表中。

  • 复制到tmp表

    服务器正在复制到内存中的临时表。

  • 正在复制到磁盘上的tmp表

    服务器正在复制到磁盘上的临时表。临时结果集变得太大(请参阅第8.4.4节“MySQL内部临时表的使用”).因此,线程将临时表从内存中的格式更改为基于磁盘的格式,以节省内存。

  • 创建索引

    线程正在处理ALTER TABLE……启用钥匙对于一个MyISAM表格

  • 创建分类索引

    线程正在处理选择这是使用内部临时表解决的。

  • 创建表

    线程正在创建一个表。这包括创建临时表。

  • 创建tmp表

    线程正在内存或磁盘上创建临时表。如果表是在内存中创建的,但后来被转换为磁盘上的表,则该操作期间的状态为正在复制到磁盘上的tmp表

  • 提交修改表到存储引擎

    服务器已经完成就位ALTER TABLE并提交结果。

  • 从主表删除

    服务器正在执行多表删除的第一部分。它只从第一个表中删除,并保存用于从其他(引用)表中删除的列和偏移量。

  • 从引用表中删除

    服务器正在执行多表删除的第二部分,并从其他表中删除匹配的行。

  • discard_or_import_tablespace

    线程正在处理ALTER TABLE……丢弃表空间ALTER TABLE……导入表空间声明。

  • 结束

    这发生在末尾,但在清理之前ALTER TABLE创建视图删除插入选择,或更新语句。

    结束状态下,以下操作可能正在发生:

    • 在更改表中的数据后删除查询缓存项

    • 将事件写入二进制日志

    • 释放内存缓冲区,包括用于blob

  • 执行

    线程已经开始执行一条语句。

  • 执行init_command

    的值中执行语句init_command系统变量。

  • 释放物品

    线程执行了一个命令。在此状态期间执行的一些释放项涉及到查询缓存。这种状态之后通常是清理

  • 全文的初始化

    服务器准备执行自然语言全文搜索。

  • 初始化

    的初始化之前发生ALTER TABLE删除插入选择,或更新语句。服务器在此状态下所采取的操作包括刷新二进制日志InnoDB日志,以及一些查询缓存清理操作。

  • 杀了

    有人发来一封杀了语句传递给线程,它应该在下次检查kill标志时中止。在MySQL的每个主循环中都会检查该标志,但在某些情况下,线程仍然需要很短的时间才能死亡。如果该线程被其他线程锁定,那么当其他线程释放锁时,kill就会立即生效。

  • 日志查询慢

    线程正在向慢查询日志写入一条语句。

  • 登录

    连接线程的初始状态,直到客户端成功通过身份验证。

  • 管理的钥匙

    服务器正在启用或禁用表索引。

  • 打开表

    线程正在尝试打开一个表。这应该是一个非常快速的过程,除非有什么东西阻止打开。例如,一个ALTER TABLE或者一个锁表语句可以阻止在语句完成之前打开表。也值得检查你的table_open_cache值足够大。

  • 优化

    服务器正在为查询执行初始优化。

  • 准备

    此状态发生在查询优化期间。

  • 清除旧的中继日志

    线程正在删除不需要的中继日志文件。

  • 查询结束

    此状态发生在处理查询之后,但在释放物品状态。

  • 从客户端接收

    服务器正在从客户端读取数据包。这种状态叫做阅读网在MySQL 5.7.8之前。

  • 删除重复的

    查询正在使用选择不同的这样MySQL就不能在早期阶段优化掉不同的操作。因此,MySQL需要一个额外的阶段,在将结果发送给客户端之前删除所有重复的行。

  • 删除tmp表

    线程正在删除一个内部临时表选择声明。如果没有创建临时表,则不使用此状态。

  • 重命名

    线程正在重命名一个表。

  • 重命名结果表

    线程正在处理ALTER TABLE语句创建了新表,并正在对其重命名以替换原始表。

  • 重新打开表

    线程获得了表的锁,但在获得锁后注意到底层表结构发生了变化。它释放了锁,关闭了表,并试图重新打开它。

  • 修复的分类

    修复代码使用排序来创建索引。

  • 准备修改表

    服务器准备执行就地执行ALTER TABLE

  • 修复完成

    线程已经完成了一个多线程修复MyISAM表格

  • 修复与keycache

    修复代码正在通过密钥缓存逐个创建密钥。这比修复的分类

  • 回滚

    线程正在回滚事务。

  • 保存状态

    MyISAM表操作,如修复或分析,线程正在将新的表状态保存到.MYI文件头。状态包括诸如行数、AUTO_INCREMENT计数器和键分发。

  • 为更新搜索行

    线程正在执行第一个阶段,在更新它们之前查找所有匹配的行。这必须要做,如果更新正在更改用于查找相关行的索引。

  • 发送数据

    线程正在读取和处理对象的行选择语句,并向客户端发送数据。由于在此状态期间发生的操作往往执行大量的磁盘访问(读取),因此它通常是给定查询生命周期中运行时间最长的状态。

  • 发送到客户端

    服务器正在写一个包给客户端。这种状态叫做写信给网在MySQL 5.7.8之前。

  • 设置

    线程正在开始一个ALTER TABLE操作。

  • 排序为组

    线程正在进行排序以满足集团

  • 排序的顺序

    线程正在进行排序以满足命令

  • 分类指数

    线程正在对索引页进行排序,以便在MyISAM表的优化操作。

  • 排序结果

    对于一个选择语句,这类似于创建分类索引,但对于非临时表。

  • 开始

    语句执行开始时的第一个阶段。

  • 统计数据

    服务器正在计算统计信息以制定查询执行计划。如果线程长时间处于这种状态,则服务器可能是磁盘绑定执行其他工作。

  • 系统锁定

    线程已经调用mysql_lock_tables ()自那以后,线程状态就没有更新过。这是一种非常普遍的状态,可能因多种原因而发生。

    例如,线程将请求或等待表的内部或外部系统锁。这可能发生在InnoDB的执行期间等待表级锁锁表.如果此状态是由对外部锁的请求引起的,并且您没有使用多个mysqld访问相同的服务器MyISAM表中禁用外部系统锁——skip-external-locking选择。但是,外部锁定在默认情况下是禁用的,所以这个选项可能没有效果。为显示配置文件,此状态意味着线程正在请求锁(而不是等待锁)。

  • 更新

    线程准备开始更新表。

  • 更新

    线程正在搜索要更新的行并正在更新它们。

  • 更新主数据表

    服务器正在执行多表更新的第一部分。它只更新第一个表,并保存用于更新其他(引用)表的列和偏移量。

  • 更新参考表

    服务器正在执行多表更新的第二部分,并从其他表中更新匹配的行。

  • 用户锁定

    线程将请求或正在等待使用GET_LOCK ()调用。为显示配置文件,此状态意味着线程正在请求锁(而不是等待锁)。

  • 用户的睡眠

    线程调用了睡眠()调用。

  • 等待提交锁

    用读锁刷新表正在等待提交锁。

  • 等待全局读锁

    用读锁刷新表等待的是全局读锁还是全局读锁read_only正在设置系统变量。

  • 等待表

    线程收到一个通知,表示表的底层结构已更改,需要重新打开表以获得新结构。但是,要重新打开表,它必须等到所有其他线程都关闭了相关的表。

    如果使用了另一个线程,则会发出此通知刷新表或对所讨论的表格的下列陈述之一:刷新表tbl_nameALTER TABLE重命名表修理表分析表,或优化表

  • 等待冲洗桌子

    线程正在执行刷新表和正在等待所有线程关闭它们的表,或者线程收到一个通知,表示表的底层结构发生了变化,需要重新打开表以获得新的结构。但是,要重新打开表,它必须等到所有其他线程都关闭了相关的表。

    如果使用了另一个线程,则会发出此通知刷新表或对所讨论的表格的下列陈述之一:刷新表tbl_nameALTER TABLE重命名表修理表分析表,或优化表

  • 等待lock_type

    服务器正在等待获取THR_LOCK锁或来自元数据锁定子系统的锁,其中lock_type锁的类型。

    此状态表示等待THR_LOCK

    • 等待表级锁

    这些状态表示等待元数据锁:

    • 等待事件元数据锁定

    • 等待全局读锁

    • 等待模式元数据锁定

    • 等待存储函数元数据锁定

    • 等待存储过程元数据锁定

    • 等待表元数据锁定

    • 等待触发元数据锁定

    有关表锁定指示器的信息,请参见第8.11.1节“内部锁定方法”.有关元数据锁定的信息,请参见第8.11.4节“元数据锁定”.要查看哪些锁正在阻塞锁请求,请使用性能架构锁表第25.12.12节,“性能架构锁表”

  • 等待气孔导度

    一种通用状态,线程在此状态中等待一个条件变为真。没有具体的状态信息可用。

  • 写信给网

    服务器正在向网络写数据包。这种状态叫做发送到客户端MySQL 5.7.8版本。