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
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
相关文章推荐
- General Thread States--mysql 线程状态大全
- Mysql主从线程状态
- mysql 卡死 大部分线程长时间处于sending data的状态
- mysql线程状态
- mysql运行状态管理,查看连接数状态,定位和杀掉有问题的连接线程
- mysql的线程处于System lock状态下
- Mysql里面执行show processlist出现很多Sleep状态的线程
- MySQL用户现成的建立与用户线程的状态源码解析
- mysql运行状态管理,查看连接数状态,定位和杀掉有问题的连接线程
- mysql 卡死 大部分线程长时间处于sending data的状态
- mysql复制线程状态
- 解读show slave status 命令判断MySQL复制同步状态
- 孙鑫VC学习笔记:第十六讲 (二) 利用关键代码段实现线程间的同步
- Mysql4.1.10初级解读
- 用Java线程获取优异性能(II)——使用同步连载线程访问关键代码部份
- 线程的四种状态
- PHP,操作多个用户,多个线程的session,实现用户登陆状态session值的自动更新
- 用mysqladmin -i10 processlist extended-status监控MySQL的状态。
- 检测mysql状态脚本
- 用Java线程获取优异性能(II)——使用同步连载线程访问关键代码部份