您只能看到您自己的线程),1、查询是否锁表

作者: www.9159.com  发布:2019-09-25

 

1、查询是还是不是锁表

show OPEN TABLES where In_use > 0;

查询到相呼应的进度 === 然后 kill    id

2、查询进程

    show processlist

 

补充:

翻开正在锁的作业

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 

 

查阅等待锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; 

 

转自:

翻开连接数,状态

  1. 查询是不是锁表
    show OPEN TABLES where In_use > 0;

  2. 询问进度
    show processlist
    询问到相对应的进程===然后 kill id

  3. 翻开正在锁的事体
    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

  4. 翻看等待锁的工作
    SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

1 show processlist;

 

SHOW PROCESSLIST呈现怎么线程正在运营。您也能够应用mysqladmin processlist语句得到此新闻。假让你有SUPE奇骏权限,您能够旁观有着线程。不然,您不得不看看你自个儿的线程(也正是,与你正在利用的MySQL账户相关的线程)。假若有线程在update恐怕insert 某些表,此时经过的status为updating 也许 sending data。

 

假设你收获“too many connections”错误新闻,而且想要了然正在爆发的情事,本语句是特别平价的。MySQL保留三个附加的连年,让具有SUPEENCORE权限的账户使用,以担保助理馆员能够时刻连接和检讨种类(假如你未有把此权限给予全体的顾客)。

 

Status

含义

Checking table

正在检查数据表(这是自动的)。

Closing tables

正在将表中修改的数据刷新到磁盘中,同时正在关闭已经用完的表。这是一个很快的操作,如果不是这样的话,就应该确认磁盘空间是否已经满了或者磁盘是否正处于重负中。

Connect Out

复制从服务器正在连接主服务器。

Copying to tmp table on disk

由于临时结果集大于tmp_table_size,正在将临时表从内存存储转为磁盘存储以此节省内存。

Creating tmp table

正在创建临时表以存放部分查询结果。

deleting from main table

服务器正在执行多表删除中的第一部分,刚删除第一个表。

deleting from reference tables

服务器正在执行多表删除中的第二部分,正在删除其他表的记录。

Flushing tables

正在执行FLUSH TABLES,等待其他线程关闭数据表。

Killed

发送了一个kill请求给某线程,那么这个线程将会检查kill标志位,同时会放弃下一个kill请求。MySQL会在每次的主循环中检查kill标志位,不过有些情况下该线程可能会过一小段才能死掉。如果该线程程被其他线程锁住了,那么kill请求会在锁释放时马上生效。

Locked

被其他查询锁住了。

Sending data

正在处理SELECT查询的记录,同时正在把结果发送给客户端。

Sorting for group

正在为GROUP BY做排序。

Sorting for order

正在为ORDER BY做排序。

Opening tables

这个过程应该会很快,除非受到其他因素的干扰。例如,在执ALTER TABLE或LOCK TABLE语句行完以前,数据表无法被其他线程打开。正尝试打开一个表。

Removing duplicates

正在执行一个SELECT DISTINCT方式的查询,但是MySQL无法在前一个阶段优化掉那些重复的记录。因此,MySQL需要再次去掉重复的记录,然后再把结果发送给客户端。

Reopen table

获得了对一个表的锁,但是必须在表结构修改之后才能获得这个锁。已经释放锁,关闭数据表,正尝试重新打开数据表。

Repair by sorting

修复指令正在排序以创建索引。

Repair with keycache

修复指令正在利用索引缓存一个一个地创建新索引。它会比Repair by sorting慢些。

Searching rows for update

正在讲符合条件的记录找出来以备更新。它必须在UPDATE要修改相关的记录之前就完成了。

Sleeping

正在等待客户端发送新请求。

System lock

正在等待取得一个外部的系统锁。如果当前没有运行多个mysqld服务器同时请求同一个表,那么可以通过增加--skip-external-locking参数来禁止外部系统锁。

Upgrading lock

INSERT DELAYED正在尝试取得一个锁表以插入新记录。

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已经处理完了所有待处理的插入操作,正在等待新的请求。

 

超越二分之一气象对应相当的慢的操作,只要有二个线程保持同三个景观好几分钟,那么恐怕是十分产生了,需求检查一下。还应该有别的的意况没在上头中列出来,可是它们大多数只是在翻看服务器是或不是有存在错误是才用得着。

 

from:

1、查询进程

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;

 

www.9159.com 1

 

    show processlist
  查询到相呼应的进程===然后 kill    id

4 show status like ‘%lock%’

 

翻开服务器状态。

 

www.9159.com 2

 

 

2、查询是否锁表
show OPEN TABLES where In_use > 0;

5 show engine innodb statusG;

 

MySQL 5.1事先的一声令下是:show innodbstatusG;,MySQL 5.5使用方面命令就能够查看innodb引擎的运作时消息。

 

www.9159.com 3

 

破除正在死锁的图景有二种办法:

3、查看正在锁的作业

6 show variables like ‘%timeout%’;

 

查看服务器配置参数。

 

www.9159.com 4 

 

参照他事他说加以考察资料

 

mysql5.0平时现身 err=1205 - Lockwait timeout exceeded; try restarting transaction

 

mysql show processlist命令详解

 

MySQL锁

 

SHOW INNODB STATUS提醒语法错误?

 

SHOW OPEN TABLES – what is in your tablecache

 

第一种:

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 

1.查询是还是不是锁表

 4、查看等待锁的工作

show OPEN TABLES where In_use > 0;

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; 

2.查询进程(借使您有SUPEKuga权限,您可以看来全体线程。不然,您不得不看看您自个儿的线程)

5、查看最菲尼克斯接数

show processlist

show variables like '%max_connections%'

3.干掉进度id(就是上面命令的id列)

6、**命令: show status的使用**

kill id

指令:show status like '%上面变量%';

 

Aborted_clients 由于客商未有科学关闭连接已经死掉,已经抛弃的再三再四数量。 
Aborted_connects 尝试已经倒闭的MySQL服务器的连年的次数。 
Connections 试图连接MySQL服务器的次数。 
Created_tmp_tables 当试行语句时,已经被制造了的隐含有时表的多少。 
Delayed_insert_threads 正在选用的推迟插入计算机线程的数量。 
Delayed_writes 用INSERT DELAYED写入的行数。 
Delayed_errors 用INSERT DELAYED写入的发出一些错误(也许重新键值)的行数。 
Flush_commands 实践FLUSH命令的次数。 
Handler_delete 伏乞从一张表中除去行的次数。 
Handler_read_first 央浼读入表中第一行的次数。 
Handler_read_key 诉求数字基于键读行。 
Handler_read_next 央求读入基于贰个键的一行的次数。 
Handler_read_rnd 诉求读入基于二个定位地点的一整套的次数。 
Handler_update 恳求更新表中一行的次数。 
Handler_write 央求向表中插入一行的次数。 
Key_blocks_used 用于入眼字缓存的块的数额。 
Key_read_requests 供给从缓存读入二个键值的次数。 
Key_reads 从磁盘物理读入二个键值的次数。 
Key_write_requests 央求将一个最主要字块写入缓存次数。 
Key_writes 将三个键值块物理写入磁盘的次数。 
Max_used_connections 相同的时间利用的连天的最大数目。 
Not_flushed_key_blocks 在键缓存中一度改造只是还没被清空到磁盘上的键块。 
Not_flushed_delayed_rows 在INSERT DELAY队列中等待写入的行的数额。 
Open_tables 张开表的多寡。 
Open_files 展开文件的数量。 
Open_streams 张开流的数额(首要用来日志记载) 
Opened_tables 已经展开的表的数据。 
Questions 发往服务器的查询的数目。 
Slow_queries 要花超越long_query_time时间的查询数量。 
Threads_connected 当前开采的连接的数目。 
Threads_running 不在睡眠的线程数量。 
Uptime 服务器工作了不怎么秒。

第二种:

 

1.查看下在锁的事务 

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

2.杀死进度id(正是上面命令的trx_mysql_thread_id列)

kill 线程ID

 

其余有关查看死锁的一声令下:

1:查看当前的作业
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

www.9159.com,2:查看当前锁定的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

3:查看当前等锁的事体
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; 

 

本文由9159.com发布于www.9159.com,转载请注明出处:您只能看到您自己的线程),1、查询是否锁表

关键词:

上一篇:没有了
下一篇:没有了