美烦资源网

专注技术文章分享,涵盖编程教程、IT 资源与前沿资讯

MySQL 中的命令神器,show full processlist 命令

MySQL服务器命令行中输入show full processlist命令,可以对当前正在运行的mysql进程进行监控,有助于排查mysql数据库在运行时的一些故障或性能问题。下面介绍一下show full processlist命令返回的结果中,表格中各字段的含义。


id列,进程标识,在使用kill命令时,需要用到该进程标识。

user列,显示当前用户,如果不是root,这 个命令就只显示你权限范围内的sql语句。

host列,显示这个语句是从哪个ip的哪个端口上发出的,可以用来追踪出问题语句的用户。

db列,显示 这个进程目前连接的是哪个数据库。

command列,显示当前连接的执行的命令,一般就是休眠(sleep),查询(query),连接 (connect)。

time列,此这个状态持续的时间,单位是秒。

state列,显示使用当前连接的sql语句的状态,很重要的列,后续会有所有的状态的描述,请注意,state只是语句执行中的某一个状态,一个sql语句,以查询为例,可能需要经过copying to tmp table,Sorting result,Sending data等状态才可以完成,

info列,显示这个sql语句,因为长度有限,所以长的sql语句就显示不全,但是一个判断问题语句的重要依据。


下面举例说明,如何查找系统中执行效率慢的SQL语句。

在mysql命令行中输入show full processlist后,发现返回的列表中有下面一条结果,

id:1

user:root

host:localhost

db:test

command:query

time:30

state:query

info:select * from a left join b on a.item_id=b.id where a.item_id=12

从以上结果中的time列可以看出,执行info中的语句需要30秒,接下来我们就可以好好分析一下这条SQL语句了,看看该如何优化。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言