show full processlist,MySQL 优化第7天学习
【摘要】 MySQL 中的 processlist 可以展示 MySQL 中有哪些线程在运行。在 MySQL 中执行下述命令,得到的结果如下图所示:show full processlist;上图中的各列名及其取值如下所示:id:线程标志,系统分配的 connection_id ,可以使用 select connection_id() 查看,出问题也是用 kill + id 去杀线程,使用 mysql...
MySQL 中的 processlist
可以展示 MySQL 中有哪些线程在运行。
在 MySQL 中执行下述命令,得到的结果如下图所示:
show full processlist;
上图中的各列名及其取值如下所示:
id
:线程标志,系统分配的connection_id
,可以使用select connection_id()
查看,出问题也是用 kill + id 去杀线程,使用mysql > kill id;
;User
:显示当前用户,如果当前不是用root
查询,这个命令只显示用户权限范围的sql语句;Host
:该语句是来源,即从哪个IP和端口访问的;db
:显示当前进程连接的数据库Command
:执行的命令类型,一般是休眠(sleep
),查询(query
),连接(connect
);Time
:SQL语句持续的时间,单位是秒;State
:语句执行状态,有copying to tmp table
,Sorting result
,Sending data
等状态;info
:显示执行的 SQL 语句;
State 列的状态
Checking table
:检查表;Closing tables
:将表中修改的数据刷新(Flush)到磁盘中,同时关闭已经用完的表;Copying to tmp table on disk
:内存存储转换为硬盘存储;Creating tmp table
:创建临时表;deleting from main table
:多表删除中的第一步;deleting from reference tables
:多表删除中的第二步;Flushing tables
:FLUSH TABLES
,等待其他线程关闭数据表Locked
:查询有锁;Sending data
:正在执行 SELECT 查询,然后把结果发送给客户端;Sorting for group
:正在为分组排序;Sorting for order
:正在排序
show processlist
显示的查询结果来自 information_schema
中的 processlist
表,可以用下述查询代替:
select * from information_schema.processlist
细节的内容可以通过 官方手册 查询学习。
记录时间
今天是持续写作的第 289 / 365 天。
可以关注我,点赞我、评论我、收藏我啦。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)