MySQL锁等待分析【1】中对锁等待的分析是一步一步来的、虽然最后是分析出来了,可是用时是比较长的;理清各个表之间的关系后,得到如下SQL语句,方便以后使用

select
block_trx.trx_mysql_thread_id as blocking_session_id, -- 已经持有锁的session ID
request_trx.trx_mysql_thread_id as request_session_id, -- 正在申请锁的session ID
block_trx.trx_query as blocking_sql_text, -- 已经持有锁的SQL语句
request_trx.trx_query as requesting_sql_text, -- 正在申请锁的SQL语句
waits.blocking_trx_id as blocking_trx_id, -- 已经持有锁的事务ID
waits.requesting_trx_id as requesting_trx_id, -- 正在申请锁的事务ID
waits.requested_lock_id as requested_lock_id, -- 锁对象的ID
locks.lock_table as lock_table, -- 锁对象所锁定的表
locks.lock_type as lock_type, -- 锁类型
locks.lock_mode as lock_mode -- 锁模式
from information_schema.innodb_lock_waits as waits
inner join information_schema.innodb_trx as block_trx
on waits.blocking_trx_id=block_trx.trx_id
inner join information_schema.innodb_trx as request_trx
on waits.requesting_trx_id=request_trx.trx_id
inner join information_schema.innodb_locks as locks
on waits.requested_lock_id=locks.lock_id;
+---------------------+--------------------+-------------------+-----------------------------------+-----------------+-------------------+-------------------+--------------+-----------+-----------+
| blocking_session_id | request_session_id | blocking_sql_text | requesting_sql_text | blocking_trx_id | requesting_trx_id | requested_lock_id | lock_table | lock_type | lock_mode |
+---------------------+--------------------+-------------------+-----------------------------------+-----------------+-------------------+-------------------+--------------+-----------+-----------+
| | | NULL | select * from tempdb.t for update | | | ::: | `tempdb`.`t` | RECORD | X |
| | | NULL | insert into t(x) values() | | | ::: | `tempdb`.`t` | RECORD | X |
+---------------------+--------------------+-------------------+-----------------------------------+-----------------+-------------------+-------------------+--------------+-----------+-----------+

MySQL锁等待分析【2】的更多相关文章

  1. MySQL锁等待分析【1】

    场景: 昨天业务系统上遇到了数据库慢的问题(对dcsdba.og_file_audit表的insert 慢&超时).分析后定位到是由于锁等待造成的.分析过程如下: 1.执行show proce ...

  2. MySQL锁等待与死锁问题分析

    前言: 在 MySQL 运维过程中,锁等待和死锁问题是令各位 DBA 及开发同学非常头痛的事.出现此类问题会造成业务回滚.卡顿等故障,特别是业务繁忙的系统,出现死锁问题后影响会更严重.本篇文章我们一起 ...

  3. MySQL - 锁等待超时与information_schema的三个表

    引用地址:https://blog.csdn.net/J080624/article/details/80596958 回顾一下生产中的一次MySQL异常,Cause: java.sql.SQLExc ...

  4. MYSQL 锁机制 分析

    MySQL的表级锁有两种模式:表共享读锁(Table Read Lock)和表独占写锁(Table WriteLock).MyISAM在执行查询语句(SELECT)前,会自动给涉及的所有表加读锁,在执 ...

  5. 查询MySQL锁等待的语句

    select 'Blocker' role,    p.id,    p.user,    left(p.host, locate(':', p.host) - 1) host,    tx.trx_ ...

  6. Mysql错误: ERROR 1205: Lock wait timeout exceeded解决办法(MySQL锁表、事物锁表的处理方法)

    Java执行一个SQL查询未提交,遇到1205错误. java.lang.Exception: ### Error updating database.  Cause: java.sql.SQLExc ...

  7. mysql InnoDB锁等待的查看及分析

    说明:前面已经了解了InnoDB关于在出现锁等待的时候,会根据参数innodb_lock_wait_timeout的配置,判断是否需要进行timeout的操作,本文档介绍在出现锁等待时候的查看及分析处 ...

  8. MySQL事务锁等待超时 Lock wait timeout exceeded; try restarting transaction

    工作中处理定时任务分发消息时出现的问题,在查找并解决问题的时候,将相关的问题博客收集整理,在此记录下,以便之后再遇到相同的问题,方便查阅. 问题场景 问题出现的场景: 在消息队列处理消息时,同一事务内 ...

  9. MySQL性能调优——锁定机制与锁优化分析

    针对多线程的并发访问,任何一个数据库都有其锁定机制,它的优劣直接关系着数据的一致完整性与数据库系统的高并发处理性能.锁定机制也因此成了各种数据库的核心技术之一.不同数据库存储引擎的锁定机制是不同的,本 ...

随机推荐

  1. HDU_2034——集合A-B

    Problem Description 参加过上个月月赛的同学一定还记得其中的一个最简单的题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法 ...

  2. HDU_2021——最少RMB问题

    Problem Description 作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的 ...

  3. BIND9的架构与机制笔记1

    BIND9采用的是事件驱动的机制来工作,而事件的源头则是IO,IO在linux使用的EPOLL的边缘触发模式. 本篇说的是epoll,BIND9如果创建了watcher线程(宏USE_WATCHER_ ...

  4. CF- Day at the Beach

    C. Day at the Beach time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  5. Tips:javascript 图片放大和取得尺寸

    1)获取图片尺寸 <img src="http://img.my.csdn.net/uploads/201309/03/1378223257_7957.jpg" alt=&q ...

  6. LDAP索引及缓存优化

    一.设置索引 索引将查找信息和 Directory Server 条目关联起来. Directory Server支持以下几种索引: 1出现索引 (pres) - 列出了具有特定属性的条目,与属性的值 ...

  7. jstl经典用法

    jstl的forEach使用和set变量实现自增: <body> <c:set var="index" value="0" /> < ...

  8. getClass 与getSimpleName

    //首先定义一个借口 package com.test; public interface Fruit { } //定义一个实现类 package com.test; public class App ...

  9. EasyUI中使用Uploadity问题

    <div id="UploadPage" class="easyui-layout" fit="true"> <div r ...

  10. 32位PLSQL_Developer连接oracle11g_64位

    1. 请将你下载的instantclient-basic-win32-10.2.0.5 文件解压.然后复制到你的数据库安装的文件夹下的producti文件夹下,我的是: E:\app\Administ ...