mysql show processlist 命令详解
命令格式
SHOW [FULL] PROCESSLIST
SHOW PROCESSLIST显示哪些线程正在运行。您也可以使用mysqladmin processlist语句得到此信息。如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程(也就是,与您正在使用的MySQL账户相关的线程)。如果您不使用FULL关键词,则只显示每个查询的前100个字符。
MYSQL线程状态说明
这个命令中最关键的就是state列,mysql列出的状态主要有以下几种:
| 状态 | 含义 |
| After create | 当线程创建表(包括临时表) |
| Analyzing | 线程正在分析MYISAM的key分布 |
| checking permissions | 线程正在检查执行语句的权限 |
| Checking table | 线程正在执行表check操作 |
| cleaning up | 线程已经处理完一个命令然后开始准备释放内存和reset状态变量 |
| closing tables | 线程把改变的表数据flush到磁盘然后关闭使用的表。这个操作应该是很快的,如果这个状态长时间出现,要留意检查磁盘的状态。 |
converting HEAP to MyISAM |
把一个内存中的临时表转换到磁盘上的MYISAM表 |
| copy to tmp table | 线程执行alter table语句。这个状态出现在新的表结构已经创建但数据还在拷贝到新表之前。 |
Copying to group table |
如果一个语句的group by和order by 条件不同,数据通过group by来排序然后拷贝到临时表 |
| Copying to tmp table | 拷贝到内存中的临时表 |
Copying to tmp table on disk |
如果临时表过大,服务器要把内存中的临时表拷贝到磁盘。 |
| Creating index | 对一个MYISAM 执行ALTER TABLE ... ENABLE KEYS |
Creating sort index |
线程通过执行一个临时表来执行select语句 |
| creating table | 线程正在创建表(包括临时表) |
Creating tmp table |
创建临时表(在内存或者磁盘)上,如果表一开始在内存中到后面太大,临时表就会转换到磁盘上,而且状态也会变成Copying to tmp table on disk |
| deleting from main table | 服务器正在执行一个多表delete语句的第一部分,也就是从第一张表删除数据,并且保留行以及偏移量数据以用来删除其他表中的数据。 |
deleting from reference tables |
服务器正在执行一个多表delete语句的二部分 |
| discard_or_import_tablespace | 线程正在执行ALTER TABLE ... DISCARD TABLESPACE或者ALTER TABLE ... IMPORT TABLESPACE 语句. |
| end | 这个状态出现在ALTER TABLE, CREATE VIEW, DELETE,INSERT, SELECT, UPDATE语句结束之后,但在清理以前。 |
| executing | 线程开始执行一个语句 |
| Execution of init_command | 线程在init_command系统变量中执行语句 |
| freeing items | 线程已经执行命令。一些释放 |
| Flushing tables | 这个线程执行了FLUSH TABLES,而且等待所有的线程关闭表 |
FULLTEXT initialization |
服务器准备执行文本搜索 |
| init | |
| Killed | 发送了kill 语句给这个查询。这个语句在下次检查kill标志的时候,这个语句就应该放弃掉 |
| Locked | 查询被其他的查询锁住了 |
| logging slow query | 线程正在把慢sql写到慢查询log文件中 |
| NULL | |
| login | 直到线程授权成功以前都是这个状态 |
| manage keys | 服务器正在卡哭泣或者关闭表的索引 |
Opening tables, Opening table |
线程正在打开表。这个操作是很快的,除非有其他原因阻止了打开操作,例如ALTER TABLE LOCK TABLE |
| optimizing | 服务器正在进行一个查询的初始阶段优化 |
| preparing | 正在进行查询优化 |
| Purging old relay logs | 线程删除不需要的relay log文件 |
| query end | 这个状态出现在处理完以后但在冻结item之前 |
| Reading from net | 服务器从网络读取包 |
Removing duplicates |
查询使用了select distinct。mysq在发送数据到客户端之前需要一个额外的过程来删除重复的行 |
| removing tmp table | 在执行了select语句以后,线程正在删除内部的临时表 |
| rename | 线程正在重命名表 |
| rename result table | 线程正在执行一个alter table语句,而且已经创建了新表,对新表重命名来替换原始表。 |
| Reopen tables | 线程获取了一个表的锁。由于它已经得知它依赖的表结构已经发生了变化。线程需要释放锁、关闭表、然后尝试重新打开他。 |
| Repair by sorting | 修复代码通过排序来创建索引。 |
| Repair done | 线程完成了对一个myisam表的多线程修复。 |
| Repair with keycache | 修复代码正在通过key的缓存创建key。 |
| Rolling back | 线程正在回滚事物。 |
| Saving state | myisam的analysis和repair操作中,线程会把表的一些信息例如表的行数、AUTO_INCREMENT的计数器以及key的分布都保存到.MYI文件的头部 |
| Searching rows for update | 语句执行的第一个阶段,找到所有满足条件的行记录 |
| Sending data | 线程在读取和处理SELECT语句,发送数据到客户端。由于语句需要大量的磁盘访问,这个状态会在语句的整个生命周期中占据最长的一个状态。 |
| setup | 线程开始进行ALTER TABLE 语句 |
| Sorting for group | 线程正在为group by 执行排序 |
| Sorting for order | 线程正在为order by 执行排序 |
| Sorting index | 在myisam表的优化操作中,进行索引页的排序以便获得更好的访问性能。 |
| Sorting result | 对结果进行排序 |
| statistics | 服务器正在计算统计数据从而来生成一个执行计划。如果一个线程保留这个状态很长的时间,意味着服务器在执行其他的磁盘相关的工作。 |
| System lock | 线程正在请求和获取一个内部和外部锁。如果有这个状态 |
| Table lock | System Lock后的另一个线程状态。线程已经获取了一个外部锁,然后接下来要去获取一个内部表锁。 |
| update | 线程已经准备好去更新 |
| Updating | 现在正在找或者正在更新行 |
updating main table |
服务器正在执行一个多表update语句,正在更新第一张表,保存行和偏移量以用来更新其他表。 |
updating reference tables |
服务器正在执行一个多表update语句的第二部分,正在从其他表更新行 |
| User lock | 请求或者等待获取一个锁 |
User sleep |
线程sleep |
Waiting for release of readlock |
等待一个全局的读锁 |
Waiting for tables, Waiting for table |
线程获得提示依赖的表结构发生了改变,线程需要重新打开表来获取新的结构。但是,重新打开表是需要等待其他的线程关闭表。 |
| Waiting on cond | 线程正在等条件变成true |
| Waiting to get readlock | 线程用FLUSH TABLES WITH READ LOCK语句,所以要获得一个全局的读锁,这个状态表示正在等这个锁。 |
Writing to net |
服务器把包写到网络 |
mysql show processlist 命令详解的更多相关文章
- mysql show processlist命令 详解
SHOW PROCESSLIST显示哪些线程正在运行.您也可以使用mysqladmin processlist语句得到此信息.如果您有SUPER权限,您可以看到所有线程.否则,您只能看到您自己的线程( ...
- MySQL show processlist命令详解
show processlist; 命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令. 方式1:进入mysql/bin目录下输入mysqladmin proc ...
- mysql导入导出命令详解
mysql导入导出命令详解 该命令适用于临时备份操作. 一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径): /usr/local/mysql/bin/ ---> ...
- 一次浴火重生的MySQL优化(EXPLAIN命令详解)
一直对SQL优化的技能心存无限的向往,之前面试的时候有很多面试官都会来一句,你会优化吗?我说我不太会,这时可能很多人就会有点儿说法了,比如会说不要使用通配符*去检索表.给常常使用的列建立索引.还有创建 ...
- show processlist 命令详解
如果有 SUPER 权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当前对应的 MySQL 帐户运行的线程). mysql> show processlist; +—–+— ...
- [转]mysql优化——show processlist命令详解
本文转自:https://blog.csdn.net/sunqingzhong44/article/details/70570728 版权声明:本文为博主原创文章,未经博主允许不得转载. https: ...
- mysql优化——show processlist命令详解
SHOW PROCESSLIST显示哪些线程正在运行 不在mysql提示符下使用时用mysql -uroot -e 'Show processlist' 或者 mysqladmin pro ...
- show processlist命令详解
1.show processlist; SHOW PROCESSLIST显示哪些线程正在运行.您也可以使用mysqladmin processlist语句得到此信息.如果您有SUPER权限,您可以看到 ...
- MySQL操作mysqldump命令详解
--all-databases , -A导出全部数据库. --all-tablespaces , -Y导出全部表空间. --no-tablespaces , -y不导出任何表空间信息. --add-d ...
随机推荐
- hdu4638 group 树状数组
连接:http://acm.hdu.edu.cn/showproblem.php?pid=4638 题意:就给给你n个数(大小在1-n里),然后给你连续的可以构成一个块,再给你N个询问,每个询问一个l ...
- hibernate的oracle配置(转)
连接Oracle数据库的Hibernate配置文件连接Oracle的Hibernate配置文件有两种格式,一种是xml格式的,另一种是Java属性文件格式的.下面分别给出这两种格式配置文件的代码. 1 ...
- [转] gc tips(1)
所有应用软件都需要管理内存,一个应用软件的内存管理系统包括了如下准则:什么时候派发内存,要派发多少内存,什么时候把东西放到回收站,以及什么时候清空回收站.MMgc是Flash Player几乎所有内存 ...
- yii2.0 事务
$transaction=\Yii::$app->db->beginTransaction(); $model=Customer::findOne(1); $model->name= ...
- 定时组件quartz系列<一>模拟定时组件小程序
一.核心概念 Quartz的原理不是很复杂,只要搞明白几个概念,然后知道如何去启动和关闭一个调度程序即可. 1.Job表示一个工作,要执行的具体内容.此接口中只有一个方法void execute(Jo ...
- 五个JS经典面试题
1:Scope作用范围 1: (function() { 2: var a = b = 5; 3: })(); 4: 5: console.log(b); 什么会被打印在控制台上? 回答 上面的代码会 ...
- Android 高仿UC浏览器监控剪切板弹出悬浮窗功能
UC浏览器应该是android手机里 最流行的浏览器之一了,他们有一个功能 相信大家都体验过,就是如果你复制了什么文字,(在其他app中 复制也有这个效果!,所以能猜到肯定是监控了剪切板),就会弹出一 ...
- php在apache中一共有三种工作方式:CGI模式、FastCGI模式、Apache 模块DLL
php在apache中一共有三种工作方式:CGI模式.FastCGI .FastCGI是什么? FastCGI是语言无关的.可伸缩架构的CGI开放扩展,其主要行 为是将CGI解释器进程保持在内存中并因 ...
- js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
最近做了一个项目,需要用子域名调用主域名下的一个现有的功能,于是想到了用jsonp来解决,在我们平常的项目中不乏有这种需求的朋友,于是记录下来以便以后查阅同时也希望能帮到大家,需要了解的朋友可以参考下 ...
- socket基础函数(2)
http://www.cnblogs.com/RascallySnake/archive/2013/07/11/3185071.html 一.select winsock中 #include & ...