首页 / MYSQL / MySQL找出锁等待
MySQL找出锁等待
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL找出锁等待,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2093字,纯文字阅读大概需要3分钟。
内容图文
![MySQL找出锁等待](/upload/InfoBanner/zyjiaocheng/491/d6bdae1ff624410fa6a37530f1445e77.jpg)
1.服务器级别的锁等待
可以通过show processlist看到等待锁的线程id,但是无法知道究竟哪个线程持有锁
可以通过mysqladmin debug
相关等待锁的线程以及谁持有锁可以在错误日志中找到
2.存储引擎层的锁等待则比较麻烦,以下是innodb存储引擎中锁等待以及哪个线程持有锁的查找sql
SELECT r.trx_id AS waiting_trx_id, r.trx_mysql_thread_id AS waiting_thread, TIMESTAMPDIFF(SECOND, r.trx_wait_started, CURRENT_TIMESTAMP) AS wait_time, r.trx_query AS waiting_query, l.lock_table AS waiting_table_lock, b.trx_id AS blocking_trx_id, b.trx_mysql_thread_id AS blocking_thread, SUBSTRING(p.host,1,INSTR(p.host, ‘:‘) -1 ) AS blocking_host, SUBSTRING(p.host, INSTR(p.host, ‘:‘) +1 ) AS block_port, IF(p.command="Sleep",p.time,0) AS idle_in_trx, b.trx_query AS blcoking_query from information_schema.innodb_lock_waits AS w INNER JOIN information_schema.innodb_trx AS b ON b.trx_id=w.blocking_trx_id INNER JOIN information_schema.innodb_trx AS r ON r.trx_id = w.requesting_trx_id INNER JOIN information_schema.innodb_locks AS l ON w.requested_lock_id = l.lock_id LEFT JOIN information_schema.processlist AS p ON p.id = b.trx_mysql_thread_id ORDER BY wait_time DESC\G
3.如果因为线程在一个事务中空闲而正在遭受大量的锁操作,下面查询显示存储引擎层有多少查询被哪些线程阻塞。
SELECT CONCAT(‘thread ‘, b.trx_mysql_thread_id, ‘ from ‘,p.host) AS who_blocks, IF (p.command = "Sleep",p.time, 0) AS idle_in_trx, MAX(TIMESTAMPDIFF(SECOND,r.trx_wait_started,NOW())) AS max_wait_time, COUNT(*) AS num_waiters FROM information_schema.innodb_lock_waits as w inner join information_schema.innodb_trx as b on b.trx_id = w.blocking_trx_id inner join information_schema.innodb_trx as r on r.trx_id = w.requesting_trx_id left join information_schema.processlist as p on p.id = b.trx_mysql_thread_id group by who_blocks order by num_waiters desc\G
来源: http://www.cnblogs.com/gomysql/p/3608466.html
MySQL找出锁等待
标签:lis info 存储 http lock 查找 log sel mysq
本文系统来源:http://www.cnblogs.com/liang545621/p/7518332.html
内容总结
以上是互联网集市为您收集整理的MySQL找出锁等待全部内容,希望文章能够帮你解决MySQL找出锁等待所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。