其他分享
首页 > 其他分享> > show processlist命令与kill 线程

show processlist命令与kill 线程

作者:互联网

show [full] processlist

show processlist显示正在运行的线程。如果有process权限,则可以查看所有正在运行的线程。否则,只能看到自己的线程。如果不使用full关键字,则只在info字段显示每个语句的前100个字符。

show processlist命令是非常有用的,如果你获得到“too many connections”错误信息,并且想知道什么正在运行。MySQL保留了一个额外的连接给超级管理员。

线程能够被kill掉,使用kill语句。

mysql> show processlist;+----+------+--------------------+-----------+---------+------+-------------+------------------+| Id | User | Host               | db        | Command | Time | State       | Info             |+----+------+--------------------+-----------+---------+------+-------------+------------------+| 36 | root | 172.16.100.19:7954 | tpcc_test | Sleep   |  456 |             | NULL             || 37 | root | 172.16.100.19:7969 | tpcc_test | Sleep   |  456 |             | NULL             || 42 | root | localhost          | NULL      | Query   |    0 | System lock | show processlist || 43 | root | 10.0.102.204:49224 | employees | Sleep   |   12 |             | NULL             |+----+------+--------------------+-----------+---------+------+-------------+------------------+4 rows in set (0.00 sec)

这个显示的几个字段还是比较好理解的。

进程的信息也可以通过mysqladmin processlist命令查看。

相比较之下show processlist和information_schema.processlist需要互斥锁,而performance_schema.threads不需要,threads对服务器性能影响最小,threads表还显示有关后台线程的信息。

kill线程

与MySQL服务器每个链接都在一个单独的线程中运行。可以使用如下语句杀死一个线程。

  processlist_id

connection: 与kill processlist_id相同;中断连接正在执行的任何语句之后,中断连接。
query: 中断连接正在执行的语句,但是保持本身的连接。

有三种方法可以获得processlist_id,上面已经提到了!

当你使用kill时,一个特殊的kill标记被设置给这个线程。在大多数的情况下,它可能会等一段时间线程再死亡,因为kill标记仅在一些情况下被检测。

 

mysql Id    Host                 db                  Command  Time  State        Info                root  .:   tpcc_test           Sleep                                      root  .:   tpcc_test           Sleep                                      root  localhost                            Query         System lock  show processlist    root  .:   employees           Sleep                                   root  .:                  Sleep                                   root  .:  information_schema  Sleep                                   root  .:   information_schema  Sleep                                   root  .:  performance_schema  Sleep                                   root  .:  performance_schema  Sleep                                 rows   (   rows affected (    (HY000): Lost connection  MySQL server during query

 

标签:thread,kill,statement,processlist,线程,root
来源: https://blog.51cto.com/lovejxs/2726661