怎么查看mysql线程 如何看mysql( 二 )


Updating
正在搜索匹配的记录 , 并且修改它们 。
User Lock
正在等待GET_LOCK() 。
Waiting for tables
该线程得到通知,数据表结构已经被修改了,需要重新打开数据表以取得新的结构 。然后 , 为了能的重新打开数据表,必须等到所有其他线程关闭这个表 。以下几种情况下会产生这个通知:FLUSH TABLES tbl_name, ALTER TABLE, RENAME TABLE, REPAIR TABLE, ANALYZE TABLE,或OPTIMIZE TABLE 。
waiting for handler insert
INSERT DELAYED已经处理完了所有待处理的插入操作,正在等待新的请求 。
大部分状态对应很快的操作,只要有一个线程保持同一个状态好几秒钟,那么可能是有问题发生了,需要检查一下 。还有其他的状态没在上面中列出来 , 不过它们大部分只是在查看服务器是否有存在错误是才用得着 。
2 show full processlist;
show processlist;只列出前100条,如果想全列出请使用show full processlist;
3 show open tables;
这条命令能够查看当前有那些表是打开的 。In_use列表示有多少线程正在使用某张表,Name_locked表示表名是否被锁,这一般发生在Drop或Rename命令操作这张表时 。所以这条命令不能帮助解答我们常见的问题:当前某张表是否有死锁,谁拥有表上的这个锁等 。
show open tables from database;
4 show status like ‘%lock%’
查看服务器状态 。
5 show engine innodb status\G;
MySQL 5.1之前的命令是:show innodbstatus\G;,MySQL 5.5使用上面命令即可查看innodb引擎的运行时信息 。
6 show variables like ‘%timeout%’;
查看服务器配置参数 。
怎么查看mysql binlog dump线程主库上记录二进制日志 , 也就是binlog日志 。
备库将主库的二进制日志复制到其本地的中继日志中 。首先 , 备库会启动一个工作线程,称为I/O线程,I/O线程跟主库建立一个普通的客户端连接,然后在主库上启动一个特殊的二进制转存(Binglog Dump)线程,这个转存线程会读取主库上的二进制日志中事件,并发送给从库的I/O线程;如果主库没有更新信息将进入休眠 。
备库的SQL线程执行最后一步,该线程从中继日志中读取事件并在备库执行,从而实现备库数据的更新 。
MYSQL中如何强制终止一条语句的执行?KILL命令的语法格式如下:KILL [CONNECTION | QUERY] thread_id
步骤如下:
1、KILL允许自选的CONNECTION或QUERY修改符:KILL CONNECTION与不含修改符的KILL一样:它会终止与给定的thread_id有关的连接 。
2、KILL QUERY会终止连接当前正在执行的语句,但是会保持连接的原状 。
3、如果您拥有PROCESS权限,则您可以查看所有线程 。
4、如果您拥有超级管理员权限 , 您可以终止所有线程和语句 。否则,您只能查看和终止您自己的线程和语句 。
5、您也可以使用mysqladmin processlist和mysqladmin kill命令来检查和终止线程 。
首先登录mysql,然后使用: show processlist; 查看当前mysql中各个线程状态 。
以上显示出当前正在执行的sql语句列表,找到消耗资源最大的那条语句对应的id.
然后运行kill命令,命令格式如下:
[sql] view plain copy
kill id;
- 示例:
kill 8358
杀掉即可 。
关于怎么查看mysql线程和如何看mysql的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读