常见的mysql 进程state

2024-08-28 06:08

本文主要是介绍常见的mysql 进程state,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自http://blog.itpub.net/22664653/viewspace-754715/

Analyzing
线程是对MyISAM 表的统计信息做分析(例如, ANALYZE TABLE )。
----------------------------------------------------------------------------
checking permissions
线程是检查服务器是否具有所需的权限来执行该语句。
----------------------------------------------------------------------------
Checking table
线程正在执行表检查操作。
----------------------------------------------------------------------------
cleaning up
线程处理一个命令,并正准备以释放内存和重置某些状态变量。
----------------------------------------------------------------------------
closing tables
线程是改变表中的数据刷新到磁盘和关闭使用的表。 这应该是一个快速的操作。 如果没有,你应该确认你没有一个完整的磁盘和磁盘是不是在十分繁重的情况下使用。
------------------------------------------------------------------------
converting HEAP to MyISAM
线程是从转换内部临时表MEMORY内存表磁盘MyISAM表。
----------------------------------------------------------------------
copy to tmp table
线程正在处理一个ALTER TABLE语句。 这种状态发生后,与新结构的表已创建,但前行复制到它。
--------------------------------------------------------------------------------
Copying to group table
如果语句有不同的ORDER BY和GROUP BY标准,按组排序的行复制到一个临时表。
----------------------------------------------------------------------------
Copying to tmp table
服务器复制到内存中的临时表。
--------------------------------------------------------------------
Copying to tmp table on disk
服务器复制到一个临时表在磁盘上。 临时结果集已经变得过于庞大(见7.8.4节,“MySQL如何使用内部临时表” )。 因此,线程从内存中的临时表基于磁盘的格式,以节省内存。
--------------------------------------------------------------------------------
Creating index
线程正在处理ALTER TABLE ... ENABLE KEYS ALTER TABLE ... ENABLE KEYS为MyISAM MyISAM表。
----------------------------------------------------------------
Creating sort index
mysql 要通过内部临时表的方案来处理这次Select,当然这个表是内存中的。当内存放不下时,全部copy到磁盘。有可能导致性能极具下降。
---------------------------------------------------------
creating table
线程创建一个表。 这包括建立临时表。
-----------------------------------
Creating tmp table
线程是创建一个临时表在内存或磁盘上。 如果表是在内存中创建,但后来被转换成一个磁盘上的表,在该操作的Copying to tmp table on disk在磁盘上。
---------------------------------------------------------
deleting from main table
服务器正在执行多表删除的第一部分。 它只能从第一个表中删除,并保存列和删除从其他表(参考)偏移。
---------------------------------------------------------------
deleting from reference tables
服务器正在执行多表删除的第二部分,从其他表中删除匹配的行。
------------------------------------------------------------
discard_or_import_tablespace
线程正在处理一个ALTER TABLE ... DISCARD TABLESPACE ALTER TABLE ... DISCARD TABLESPACE或ALTER TABLE ... IMPORT TABLESPACE ALTER TABLE ... IMPORT TABLESPACE语句。
-----------------------------------
end
清理ALTER TABLE , CREATE VIEW , DELETE , INSERT , SELECT或UPDATE语句。
---------------------------------------
executing
线程已开始执行语句。
------------------------------
Execution of init_command
线程正在执行中的价值陈述init_command系统变量。
----------------------------------------------
freeing items
线程已执行的命令。 释放一些在这种状态下完成的项目,涉及的查询缓存。 这种状态通常后跟cleaning up 。
------------------------------------------------
Flushing tables
线程正在执行FLUSH TABLES ,等待所有线程关闭其表。
-------------------------------
FULLTEXT initialization
该服务器是准备执行一个自然语言的全文检索。
---------------------------------------
init
这发生之前的初始化ALTER TABLE , DELETE , INSERT , SELECT或UPDATE语句。 服务器在这种状态下采取的行动包括冲洗二进制日志中InnoDB日志,和一些查询缓存清理操作。
对于end状态,以下操作可能会发生的事情:
更改后删除表中的数据查询的缓存条目
二进制日志中写一个事件
释放内存缓冲区,包括为斑点
--------------------------
Killed
有人发送一个KILL线程的语句,它应该中止在下一次检查杀死标志。 检查该标志是在每个MySQL中的主要循环,但在某些情况下可能还需要很短的时间为线程死亡。 如果线程是由其他线程锁定,杀死尽快生效的其他线程释放它的锁。
-----------
Locked
查询被锁定由另一个查询。
-------------------------
logging slow query
线程正在写一慢查询日志的语句。
NULL
这种状态是用于SHOW PROCESSLIST状态。
----------------------
login
连接线程的初始状态,直到客户端已成功通过身份验证。
---------------------------------------------
Opening tables , Opening table
线程试图打开一个表。 这应该是非常快的过程中,除非有阻止打开。 例如,一个ALTER TABLE或LOCK TABLE语句可以防止打开一个表的语句,直到完成。 您的table_cache值足够大,这也是值得一试。
----------------------------------------------------
optimizing
服务器执行查询的初始优化。
--------------------------------
preparing
这种状态出现在查询优化过程中。

-------------------------
Purging old relay logs
线程是消除不必要的中继日志文件。
---------------------------
query end
这种状态发生后处理查询,但在此freeing items的项目状态。
----------------------
Reading from net
服务器是阅读从网络数据包。
---------------------
Removing duplicates
查询使用SELECT DISTINCT在这样一种方式是MySQL不能优化掉在早期阶段的不同操作。 正因为如此,MySQL需要一个额外的的阶段,将结果发送到客户端之前删除所有重复行。
---------------------------
removing tmp table
线程是消除处理后,内部的SELECT表SELECT语句。 如果没有创建临时表,这种状态是不使用。
---------------------
rename
线程重命名表。
-----------------------
rename result table
线程正在处理一个ALTER TABLE语句,创建新表,并重新命名它来取代原来的表。
-----------------
Reopen tables
线程有一个表锁,但注意到后锁底层表结构改变。 它释放的锁,关闭表,并试图重新打开它。
------------------
Repair by sorting
修复代码是使用排序创建索引。
-------------------
Repair done
该线程已完成了一个多线程的MyISAM表。
-------------------
Repair with keycache
修复代码是使用创建密钥通过关键缓存。 这是远远高于速度Repair by sorting进行排序。
---------------
Rolling back
线程回滚事务。
------------
Saving state
如修理或分析MyISAM MyISAM表操作,线程是节能的新表的状态.MYI文件头。 国家包括行数,如信息AUTO_INCREMENT计数器,以及关键的分布。
--------------------------
Searching rows for update
线程正在做第一阶段前更新他们找到所有匹配的行。 这工作要做, UPDATE UPDATE正在改变,是用来寻找所涉及的行的索引。
------------------
Sending data
线程处理一个SELECT语句行,将数据发送到客户端。 因为在这个状态发生的操作往往执行大量的磁盘访问(读取),它往往是在一个给定的查询的生命周期最长的运行状态。
-----------
setup
线程开始一个ALTER TABLE操作。
---------------------
Sorting for group
线程是做一个分类,以GROUP BY集团。
---------------
Sorting for order
线程是做来满足ORDER BY排序。
-------------------
Sorting index
线程排序索引的网页,更高效的访问MyISAM表的优化操作。
------------------
Sorting result
对于SELECT语句,这是Creating sort index类似,但nontemporary表。
-----------------
statistics
服务器计算统计数据,以制定一个查询执行计划。 如果一个线程处于这种状态很长一段时间,服务器可能是磁盘绑定执行其他工作。
------------------
System lock
该线程将要求或正在等待内部或外部的系统锁表。 如果这种状态是造成外部锁的请求和您不使用多个mysqld的访问相同的MyISAM MyISAM表,你可以禁用与外部系统--skip-external-locking锁定选项。 然而,外部锁定是默认禁用的,所以这个选项很可能不会有任何效果。 SHOW PROFILE ,这种状态意味着线程请求锁(不等待)。
-------------
Table lock
后的下一个线程状态System lock锁定。 线程已经收购了外部锁定,并要求内部表锁。
-------------
Updating
线程正在寻找要更新的行和更新他们。
---------------------
updating main table
服务器正在执行多表更新的第一部分。 它是只更新第一个表,并节省列和用于更新其他表(参考)偏移。
---------------------------
updating reference tables
服务器正在执行多表更新的第二部分和更新从其他表匹配的行。
--------------------
User lock
线程请求或要求与咨询锁等待GET_LOCK()调用。 SHOW PROFILE ,这种状态意味着线程请求锁(不等待)。
-------------
Waiting for release of readlock
线程正在等待另一个线程(与获得全局读锁FLUSH TABLES WITH READ LOCK TABLES)被释放。
----------------------------------------
Waiting for tables , Waiting for table
线程得到一个表的基本结构发生了变化的通知,它需要重新打开表,以获取新的结构。 然而,重新打开表,它必须等到所有其他线程已经关闭了表中的问题。
此通知发生,如果另一个线程已FLUSH TABLES或桌子上的问题下面的语句之一FLUSH TABLES tbl_name tbl_name ALTER TABLE , RENAME TABLE TABLE REPAIR TABLE TABLE ANALYZE TABLE TABLE, OPTIMIZE TABLE TABLE 。
-----------------------
Waiting on cond
在该线程正在等待一个条件,成为真正的一般状态。 没有特定的状态信息是可用的。
-----------------------------
Waiting to get readlock
线程已发出一个FLUSH TABLES WITH READ LOCK语句获得全局读锁,并正在等待获取锁。
---------------------
Writing to net
服务器写一个数据包到网络上。
----------------------------------------------------------------------------
----------------------------------------------------------------------------

这篇关于常见的mysql 进程state的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1113941

相关文章

MySQL 多表连接操作方法(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN)

《MySQL多表连接操作方法(INNERJOIN、LEFTJOIN、RIGHTJOIN、FULLOUTERJOIN)》多表连接是一种将两个或多个表中的数据组合在一起的SQL操作,通过连接,... 目录一、 什么是多表连接?二、 mysql 支持的连接类型三、 多表连接的语法四、实战示例 数据准备五、连接的性

MySQL中的分组和多表连接详解

《MySQL中的分组和多表连接详解》:本文主要介绍MySQL中的分组和多表连接的相关操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录mysql中的分组和多表连接一、MySQL的分组(group javascriptby )二、多表连接(表连接会产生大量的数据垃圾)MySQL中的

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

MySQL重复数据处理的七种高效方法

《MySQL重复数据处理的七种高效方法》你是不是也曾遇到过这样的烦恼:明明系统测试时一切正常,上线后却频频出现重复数据,大批量导数据时,总有那么几条不听话的记录导致整个事务莫名回滚,今天,我就跟大家分... 目录1. 重复数据插入问题分析1.1 问题本质1.2 常见场景图2. 基础解决方案:使用异常捕获3.

SQL中redo log 刷⼊磁盘的常见方法

《SQL中redolog刷⼊磁盘的常见方法》本文主要介绍了SQL中redolog刷⼊磁盘的常见方法,将redolog刷入磁盘的方法确保了数据的持久性和一致性,下面就来具体介绍一下,感兴趣的可以了解... 目录Redo Log 刷入磁盘的方法Redo Log 刷入磁盘的过程代码示例(伪代码)在数据库系统中,r

Python如何精准判断某个进程是否在运行

《Python如何精准判断某个进程是否在运行》这篇文章主要为大家详细介绍了Python如何精准判断某个进程是否在运行,本文为大家整理了3种方法并进行了对比,有需要的小伙伴可以跟随小编一起学习一下... 目录一、为什么需要判断进程是否存在二、方法1:用psutil库(推荐)三、方法2:用os.system调用

mysql中的group by高级用法

《mysql中的groupby高级用法》MySQL中的GROUPBY是数据聚合分析的核心功能,主要用于将结果集按指定列分组,并结合聚合函数进行统计计算,下面给大家介绍mysql中的groupby用法... 目录一、基本语法与核心功能二、基础用法示例1. 单列分组统计2. 多列组合分组3. 与WHERE结合使

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT