如何kill掉卡顿的MySQL线程?

网友投稿 921 2023-05-07

如何kill掉卡顿的MySQL线程?

如何kill掉卡顿的MySQL线程?

作为一个开发人员或者数据库管理员,学会检查数据库运行情况是必不可少的工作。造成MySQL线程卡顿的原因有很多,比如deadlock,但是无论是哪种原因,我们发现问题之后的***要务就是解决问题,防止问题继续恶化。那么,应该如何操作?

查找线程

有两种方法可以查看正在运行的线程。

进入到mysql/bin目录下,执行mysqladmin processlist连上MySQL,输入show processlist;命令查看

我们用Navicat登录localhost简单看一下,结果如下:

结果中每一行对应一个连接,每一列的含义如下:

Id:thread_id,线程id;

User:用户,如果你不是root,那么只能看到权限范围内的SQL;

Host:可以看到来源IP和端口,结合netstat或lsof命令可快速定位进程;

db:当前DB实例;

Command:当前执行的命令,通常是sleep、query、connect ;

Time:当前状态持续了多少秒;

State:当前状态;

Info:当前语句;

杀死线程

执行kill id命令即可杀死卡顿的线程

常见原因

造成线程卡顿的原因有很多,但是很多时候通常只有两种:

锁竞争慢查询

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MySQL-关于数据库建表的一些观点和建议
下一篇:Streams:一个新的Redis通用数据结构
相关文章