1.show full processlist

显示MySQL所有正在执行的进程,用于查看当前的MySQL运行情况,避免死锁等导致的异常情况。

主要的列:

  1. Id:进程Id
  2. User:登录账号
  3. Host:登录用户IP端口
  4. db:访问那个库
  5. Time:该操作持续时间
  6. Command:显示当前连接的执行的命令,一般就是守护进程(Daemon) 休眠(Sleep),查询(Query),连接(Connect)
  7. Rows_sent:命令返回的行数
  8. Rows_examined:命令检查的行数(当这个值大的时候,表示命令需要检查的行数很大,可以使用explain该命令来看实际的执行情况,判断是否正常使用索引等问题)
  9. Rows_read:命令读取的行数
  10. State:当前状态
  • Checking table :正在检查数据表(这是自动的)。
  • Closing tables :正在将表中修改的数据刷新到磁盘中,同时正在关闭已经用完的表。这是一个很快的操作,如果不是这样的话,就应该确认磁盘空间是否已经满了或者磁盘是否正处于重负中。
  • Connect Out :复制从服务器正在连接主服务器。
  • Copying to tmp table on disk :由于临时结果集大于tmp_table_size,正在将临时表从内存存储转为磁盘存储以此节省内存。
  • Creating tmp table :正在创建临时表以存放部分查询结果。
  • deleting from main table :服务器正在执行多表删除中的第一部分,刚删除第一个表。
  • deleting from reference tables :服务器正在执行多表删除中的第二部分,正在删除其他表的记录。
  • Flushing tables :正在执行FLUSH TABLES,等待其他线程关闭数据表。
  • Killed :发送了一个kill请求给某线程,那么这个线程将会检查kill标志位,同时会放弃下一个kill请求。MySQL会在每次的主循环中检查kill标志位,不过有些情况下该线程可能会过一小段才能死掉。如果该线程程被其他线程锁住了,那么kill请求会在锁释放时马上生效。
  • Locked :被其他查询锁住了。
  • Sending data :正在处理SELECT查询的记录,同时正在把结果发送给客户端。
  • Sorting for group :正在为GROUP BY做排序。
  • Sorting for order :正在为ORDER BY做排序。
  • Opening tables :这个过程应该会很快,除非受到其他因素的干扰。例如,在执ALTER TABLE或LOCK TABLE语句行完以前,数据表无法被其他线程打开。正尝试打开一个表。
  • Removing duplicates :正在执行一个SELECT DISTINCT方式的查询,但是MySQL无法在前一个阶段优化掉那些重复的记录。因此,MySQL需要再次去掉重复的记录,然后再把结果发送给客户端。
  • Reopen table :获得了对一个表的锁,但是必须在表结构修改之后才能获得这个锁。已经释放锁,关闭数据表,正尝试重新打开数据表。
  • Repair by sorting :修复指令正在排序以创建索引。
  • Repair with keycache :修复指令正在利用索引缓存一个一个地创建新索引。它会比Repair by sorting慢些。
  • Searching rows for update :正在讲符合条件的记录找出来以备更新。它必须在UPDATE要修改相关的记录之前就完成了。
  • Sleeping :正在等待客户端发送新请求.
  • System lock :正在等待取得一个外部的系统锁。如果当前没有运行多个mysqld服务器同时请求同一个表,那么可以通过增加–skip-external-locking参数来禁止外部系统锁。
  • Upgrading lock :INSERT DELAYED正在尝试取得一个锁表以插入新记录。
  • Updating :正在搜索匹配的记录,并且修改它们。
  • User Lock :正在等待GET_LOCK()。
  • Waiting for tables :该线程得到通知,数据表结构已经被修改了,需要重新打开数据表以取得新的结构。然后,为了能的重新打开数据表,必须等到所有其他线程关闭这个表。以下几种情况下会产生这个通知:FLUSH TABLES tbl_name, ALTER TABLE, RENAME TABLE, REPAIR TABLE, ANALYZE TABLE,或OPTIMIZE TABLE。
  • waiting for handler insert :INSERT DELAYED已经处理完了所有待处理的插入操作,正在等待新的请求。

2.kill

当发现一些进程死锁的时候,可以使用命令kill Id结束该进程释放锁。

参考:《mysql的show processlist命令大作用》

MySQL processlist/kill的更多相关文章

  1. paip.mysql 批量kill 连接.

    paip.mysql 批量kill 连接. 作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.net ...

  2. mysql中kill掉所有锁表的进程

    --mysql中kill掉所有锁表的进程 --------------------------------2014/05/20 在数据库的管理中,我们经常会碰到锁表的问题,看一下进程列表. mysql ...

  3. [日常] PHP与Mysql测试kill慢查询并检验PDO的错误模式

    <?php try{ //1. pdo的错误模式,抛出异常,不记录到php的error日志,不影响代码继续运行, $opts=array( PDO::ATTR_ERRMODE => PDO ...

  4. centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数据库读写分离 双主搭建 mysql.history 第二十九节课

    centos  MySQL主从配置 ntsysv   chkconfig  setup命令  配置MySQL 主从 子shell  MySQL备份  kill命令  pid文件  discuz!论坛数 ...

  5. Mysql processlist命令

    Mysql processlist命令   mysqladmin -uroot -proot processlist mysql 查看当前连接数 命令: show processlist; 如果是ro ...

  6. 批量kill mysql processlist进程

    如果大批量的操作能够通过一系列的select语句产生,那么理论上就能对这些结果批量处理.但是mysql并没用提供eval这样的对结果集进行分析操作的功能.所以只能现将select结果保存到临时文件中, ...

  7. MySQL中kill掉所有表的进程

    同事打电话告诉我用户数据库挂掉了. 我起床看一下进程列表. mysql>show processlist; 出来哗啦啦好几屏幕的, 没有一千也有几百条, 查询语句把表锁住了, 赶紧找出第一个Lo ...

  8. mysql processlist 线程状态

        Analyzing 线程是对MyISAM 表的统计信息做分析(例如, ANALYZE TABLE ).   checking permissions 线程是检查服务器是否具有所需的权限来执行该 ...

  9. MySQL中kill所有慢查询进程和锁表进程

    1.kill所有慢查询进程: #!/bin/bash mysql -uroot -pMy_Password -e "show processlist" | grep -i &quo ...

随机推荐

  1. git小技巧--如何从其他分支merge个别文件或文件夹

    在实际工作中,一个大型的项目或版本迭代可能不是一次上线,可能会分好几次上线,这时候就会涉及创建多个分支,进行分别开发. 创建分支 功能分为2个分支,分别为A.B. A上面有个列表页功能 B上面有个详情 ...

  2. Centos7部署tornado项目

    今天帮一个学生解决tornado的部署问题,在此记录了这其中的过程,其中的tornado项目更换为demo示例. 开发环境: 本地开发环境:Win10 + Python3.5.4 + PyCharm ...

  3. Django设计模式

    单例模式: 建造者模式: 示例: from enum import Enum import time PizzaProgress = Enum('PizzaProgress', 'queued pre ...

  4. 配置使用 git 秘钥连接 GitHub

    配置使用 git 秘钥连接 GitHub 在Linux下部署Git环境 1.安装Git. 使用命令安装 git . sudo apt-get install git 2.创建一个 Github 账号 ...

  5. Python中对象的引用与复制

    在python进行像b = a这样的赋值时,只会创建一个对a的新引用,使a的引用计数加1,而不会创建新的对象: >>> a = 'xyz' >>> import s ...

  6. Docker中的Cgroup Driver:Cgroupfs 与 Systemd

    在安装kubernetes的过程中,会出现 failed to create kubelet: misconfiguration: kubelet cgroup driver: "cgrou ...

  7. newcoder H肥猪(单调队列 / 线段树)题解

    题意: 小B来到了一个异世界,成为了肥猪之王. 在这个异世界,共有n种肥猪,编号分别为1,...,n. 小B希望集齐这n种肥猪. 召集肥猪有两种方式: 1. 花费a[i]的金币召唤一只编号为i的肥猪. ...

  8. SCU 4437 Carries(二分乱搞)题解

    题意:问任意两对ai,aj相加的总进位数为多少.比如5,6,95分为(5,6)(5,95)(6,95),进位数 = 1 + 2 + 2 = 5 思路:显然暴力是会超时的.我们可以知道总进位数等于每一位 ...

  9. 修改控制台为Consolas字体

    windows下控制台字体修改为Consolas字体比较好看,修改步骤如下: 临时修改 命令行cmd命令进入控制台,输入chcp 437命令,执行. 右键点击标题栏进入属性,修改字体为Consolas ...

  10. facebook api之Ads Insights API

    The Ads Insights API provides API access for reporting and analytics purposes. When exclusively usin ...