您的位置:首页 > 数据库 > MySQL

MySQL关键线程状态解读

2017-04-02 17:01 459 查看
checking permission:安全检查,检查是否有权限。

cleaning up :打扫战场 - 释放内存,释放持有的句柄等。

closing table:用完了,关闭该表,刷新到磁盘。如果长时间处于该状态,有可能磁盘满了。

copy to tmp table:执行alter table修改表结构时。建议凌晨执行。

copying to tmp table:拷贝数据到内存中的临时表,常见于group by操作时。建议创建索引。

copying to tmp table on disk:临时结果集太大,内存中放不下,需要将内存中的临时表拷贝到磁盘上,形成#sql***.MYD、#sql***.MYI。建议创建索引,加大sort_buffer_size/tmp_table_size/max_heap_table_size。

creating sort index:当前select中需要用到临时表在进行order by排序。

creating tmp table:创建基于内存或磁盘的临时表,当从内存转成磁盘临时表时,状态会转变成copying to tmp table on disk。建议创建索引。

freeing items:通常是cleaning up之后的状态,例如正在释放query cache。

Reading from net:表示server端正通过网络读取客户端发送过来的请求。建议减小客户端发送数据包大小,提高网络带宽质量。

removing tmp table:删除select中用完的临时表。

sending data:从server端发送数据到客户端,也有可能是接收存储引擎返回的数据,再发送给客户端,数据量很大时尤其经常能看见。建议通过索引或limit,减少需要扫描的数据量。(sending data不是网络发送,是从磁盘读取。发送到网络是writing to net)

sorting result:正在对结果进行排序,类似creating sort index,不过是正常表,而不是在内存中进行排序。建议创建索引。

statistics:进行数据统计以便解析执行计划,如状态比较经常出现,有可能是磁盘IO性能很差。建议查看当前IO性能状态,例如iowait。

system lock:正在等待系统级锁。建议关闭外部锁skip external locking(默认是关闭的)

waiting for global read lock:flush tables with read lock正等待全局读锁。

waiting for tables、waiting for table flush:FLUSH TABLES, ALTER TABLES, RENAME TABLE, REPAIR TABLE, ANAYLZE TABLE, OPTIMIZE TABLE等需要刷新表结构并重新打开。

waiting for lock_type lock:等待各种类型的锁:

waiting for event metadata lock

waiting for global read lock

waiting for schema metadata lock

waiting for stored function metadata lock

waiting for stored procedure metadata lock

waiting for table level lock

waiting for table metadata lock

waiting for trigger metadata lock
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql