加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

如何kill掉卡顿的MySQL线程?

发布时间:2018-08-18 04:53:14 所属栏目:编程 来源:架构之美
导读:技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战 作为一个开发人员或者数据库管理员,学会检查数据库运行情况是必不可少的工作。造成MySQL线程卡顿的原因有很多,比如deadlock,但是无论是哪种原因,我们发现问题之后的第一要务就
技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

如何kill掉卡顿的MySQL线程?

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

查找线程

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

  1. 进入到mysql/bin目录下,执行mysqladmin processlist

  2. 连上MySQL,输入show processlist;命令查看

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

如何kill掉卡顿的MySQL线程?

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

Id:thread_id,线程id;

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

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

db:当前DB实例;

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

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

State:当前状态;

Info:当前语句;

杀死线程

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

常见原因

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

  1. 锁竞争

  2. 慢查询

【编辑推荐】

  1. MySQL主从架构-主库宕机如何恢复业务
  2. MySQL数据库如何实现多字段过滤
  3. 关于网易MySQL中间件的负载均衡策略及性能优化
  4. MySQL千万级的大表要怎么优化(读写分离、水平拆分、垂直拆分)
  5. MySQL-关于数据库建表的一些关点和建议
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读