Linux服务器通过top命令查看mysqld的进程CPU占用过高,我们可以使用Mysql的show full processlist命令来优化与查看进程,以便进行异常的排除。
show full processlist可以实时查看当前mysql线程的处理情况,让我们清楚的了解那些sql语句耗时多长时间,有没有一些突发性产生大量链接数的情况。
我们使用mysql -u root -p登陆msyql
输入以下命令:
mysql> show full processlist;
各个列的含义:
①.id,用户登录mysql时,系统分配的"connection_id",可以使用函数connection_id()查看
②.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语句,是判断问题语句的一个重要依据