怎么查看mysql行锁 mysql 查看当前锁

mysql查看是否锁表并解除锁

一:检查是否锁表, 查询进程并杀死进程

10年积累的网站建设、网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有凉州免费网站建设让你可以放心的选择与我们合作。

1) 查询是否锁表

show open tables where in_use 0;

2) 查询进程(如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程)

show processlist;

二:查看在锁事务,杀死事务对应的线程ID

1) 查看正在锁的事务

select * from information_schema.INNODB_LOCKS;

2) 杀死进程id(就是[select * from information_schema.INNODB_LOCKS; ]命令的trx_mysql_thread_id列)

kill 线程ID

3) 查看等待锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

其它:

1) 查看服务器状态

show status like '%lock%';

2) 查看超时时间:

show variables like '%timeout%';

查询mysql 哪些表正在被锁状态

可直接在mysql命令行执行:show engine innodb status\G;

查看造成死锁的sql语句,分析索引情况,然后优化sql然后show processlist;

show status like ‘%lock%’

show OPEN TABLES where In_use 0; 这个语句记录当前锁表状态

另外可以打开慢查询日志,linux下打开需在my.cnf的[mysqld]里面加上以下内容:

slow_query_log=TRUE(有些mysql版本是ON)

slow_query_log_file=/usr/local/mysql/slow_query_log.txt

long_query_time=3

扩展资料:

MySQL锁定状态查看命令

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

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

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

Copying to tmp table on disk:由于临时结果集大于tmp_table_size,正在将临时表从内存存储转为磁盘存储以此节省内存。

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

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

mysql 查看死锁

第一步,查出已锁的进程

查看正在锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

``

查看等待锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

``

INNODB_TRX表主要是包含了正在InnoDB引擎中执行的所有事务的信息,包括waiting for a lock和running的事务

select * from information_schema.innodb_trx

``

第二步,kill进程

show engin innodb status; //最后一次死锁信息及sql

show open tables where in_use 0 //查看锁表

mysql 查看数据库中有没有锁

第一步,查看行锁使用情况,命令:

show statue like 'innodb_row_lock%';

如下图所示:

第二步,创建数据库表monitor_amount,如下图所示:

第三步,查看innodb的状态,命令:

show innodb status \G;

如下图所示:

第四步,向数据库表monitor_amount插入四条记录,如下图所示:

第五步,再次查看innodb状态,如下图所示:

第六步,可以利用删除表命令来停止查看,如下图所示:


本文题目:怎么查看mysql行锁 mysql 查看当前锁
网站路径:http://cdiso.cn/article/dopsieo.html

其他资讯