mysql连接线程的show和kill

版权声明:chaizepeng https://blog.csdn.net/chaizepeng/article/details/84838403

1、登陆到mysql服务器

        Mysql –h ip –u 用户名 –p 密码;

2、检查当前连接的线程

        show full processlist 或

        show processlist 或

        selelct * from information_schema.processlist;

         

        Id:线程标识

        User:当前用户

        Host:sql的来源,ip和port

        Db:进程连接的数据库名

        Command:当前连接执行的命令,一般是sleep、connect和query,当sleep进程很多时,容易导致数据库挂死

        Time:当前连接状态持续时间(秒)

        State:当前连接sql的状态,例如:查询sql可能需要经过copying to tmp table,Sorting result,Sending data等状态

       state常见状态如下: 

Checking table :检查数据表

Closing tables:正在将表中修改的数据刷新到磁盘中,同时正在关闭已经用完的表,如果这个状态一直持续,可以考虑一下是否磁盘已满或者操作磁盘进程太多
Connect Out:

Copying to tmp table on disk:正在将临时存储到内存的数据copy到磁盘

Creating tmp table:正在创建临时表

deleting from main table:执行多表删除

Flushing tables:等待其他线程关闭数据表

Killed:kill掉某进程

Locked:被其他查询锁住了

Sending data:正在处理select查询的数据,并试图将结果发送到客户端

Sorting for group:正在为group进行排序

Sorting for order:正在为order进行排序,持续时间过长建议添加order by字段索引

Opening tables:正在尝试打开一张表

Removing duplicates:正在执行一个 SELECT DISTINCT 方式的查询,但是MySQL无法在前一个阶段优化掉那些重复的记录。因此,MySQL需要再次去掉重复的记录,然后再把结果发送给客户端。

Reopen table:试图重新打开表

Repair by sorting:修复指令正在排序以创建索引

Repair with keycache:修复指令正在利用索引缓存一个一个地创建新索引。它会比 Repair by sorting 慢些

Searching rows for update:将符合条件的数据找出来以备更新

Sleeping:正在等待接受新请求

System lock:正在等待取得一个外部的系统锁

Upgrading lock:正在尝试取得一个锁表以插入新记录

Updating:正在搜索匹配的上的,可以修改的数据

User Lock:正在等待 GET_LOCK()

Waiting for tables:该线程得到通知,数据表结构已经被修改了,需要重新打开数据表以取得新的结构

waiting for handler insert:INSERT DELAYED 已经处理完了所有待处理的插入操作,正在等待新的请求

         Info:sql内容

3、杀掉耗资源的线程

         KILL [CONNECTION | QUERY] processlist_id

         例如:kill 67169159  -- 默认修饰符是CONNECTION

猜你喜欢

转载自blog.csdn.net/chaizepeng/article/details/84838403