mysql show processlist,kill pid,查看连接数 查看被锁的表

show processlist找出执行时间最长的进程
show [full] processlist;
展示属于当前用户的线程,如果当前用户有 process privilege,那么会展示所有线程。
如果不加full,只显示前100条;show processlist展示的线程不包含background thread,所以线程数就等于connections

除了上述方式,我们还可以通过show status 查看连接,比如使用
show status like ‘%threads_%’;threads_connected就是连接数就是当前线程数。

查看被打开的表
show open tables where in_use>0;

这里有个疑问,这个sql查出来的表,不一定是被锁住的。因为用查询,如果耗费时间很长,也会查询出来。
这里的open tables是什么意思? 每次操作(查询、更新、增加、删除)都会打开表,一个线程一个connection
为了维护不同的状态,他们分别打开表,这就是open tables,所以说open tables说明在操作表,如果表锁了,这个sql是正确的。

可以使用 show status like ‘%Opened_tables%’;查看已经打开的表

活学活用show status和show variables,一个是查看mysql当前状态,一个是查看环境变量;

KILL [CONNECTION | QUERY] processlist_id
不加modifier等同于kill connection
kill query pid,是杀死connection中的sql,不杀死connection

总结
先通过show processlist查看耗时最长的进程,找到表;
然后再使用show open tables where in_use>0 验证一下;
确认后,使用kill process_id 杀死connection

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值