1. ------------------------
  2. LATEST DETECTED DEADLOCK
  3. ------------------------
  4. 140824  1:01:24
  5. *** (1) TRANSACTION:
  6. TRANSACTION 110E, ACTIVE 73 sec starting index read   ## 事务ID=110E,活跃了73s
  7. mysql tables in use 1, locked 1
  8. LOCK WAIT 3 lock struct(s), heap size 376, 2 row lock(s)  ## 有2个行锁
  9. MySQL thread id 1, OS thread handle 0x7f55ea639700, query id 81 localhost root updating  ## 该事务的线程ID=1
  10. delete from t1 where a=1   ## 这是当前事务执行的SQL
  11. *** (1) WAITING FOR THIS LOCK TO BE GRANTED:  ## 上面SQL等待的锁信息
  12. RECORD LOCKS space id 12 page no 3 n bits 80 index `PRIMARY` of table `test`.`t1` trx id 110E lock_mode X locks rec but not gap waiting
  13. Record lock, heap no 2 PHYSICAL RECORD: n_fields 4; compact format; info bits 32  ## 等待在主键上的page num=3上有加一个X锁(not gap waiting),锁80 bits
  14. 0: len 4; hex 80000001; asc     ;;
  15. 1: len 6; hex 00000000110c; asc       ;;
  16. 2: len 7; hex 0d000002350084; asc     5  ;;
  17. 3: len 4; hex 80000001; asc     ;;
  18. *** (2) TRANSACTION:
  19. TRANSACTION 110C, ACTIVE 1716 sec starting index read, thread declared inside InnoDB 500  ## 事务ID=110C,活跃了1716s
  20. mysql tables in use 1, locked 1
  21. 3 lock struct(s), heap size 376, 2 row lock(s), undo log entries 1  ## 3个锁,2个行锁,1个undo log
  22. MySQL thread id 2, OS thread handle 0x7f563c05e700, query id 82 localhost root updating  ## 该事务的线程ID=2
  23. delete from t1 where a=3   ## 这是当前事务执行的SQL
  24. *** (2) HOLDS THE LOCK(S):  ## 这个事务持有的锁信息
  25. RECORD LOCKS space id 12 page no 3 n bits 80 index `PRIMARY` of table `test`.`t1` trx id 110C lock_mode X locks rec but not gap
  26. Record lock, heap no 2 PHYSICAL RECORD: n_fields 4; compact format; info bits 32  ## 在主键上的page num=3上已持有一个X锁(not gap),锁80 bits
  27. 0: len 4; hex 80000001; asc     ;;
  28. 1: len 6; hex 00000000110c; asc       ;;
  29. 2: len 7; hex 0d000002350084; asc     5  ;;
  30. 3: len 4; hex 80000001; asc     ;;
  31. *** (2) WAITING FOR THIS LOCK TO BE GRANTED:  ## 同时这个事务还等待的锁信息
  32. RECORD LOCKS space id 12 page no 3 n bits 80 index `PRIMARY` of table `test`.`t1` trx id 110C lock_mode X locks rec but not gap waiting
  33. Record lock, heap no 3 PHYSICAL RECORD: n_fields 4; compact format; info bits 0  ## 同样等待在主键上的page num=3上有加一个X锁(not gap waiting),锁80 bits
  34. 0: len 4; hex 80000003; asc     ;;
  35. 1: len 6; hex 000000000f71; asc      q;;
  36. 2: len 7; hex ed0000022f0090; asc     /  ;;
  37. 3: len 4; hex 80000003; asc     ;;
  38. *** WE ROLL BACK TRANSACTION (1)   ## 这里选择回滚了事务110E。
  39. 也就是说,这个死锁使用事务110E中的SQL没有执行,回滚了:
  40. delete from t1 where a=1
  41. 而事务110C中的SQL是正常被执行的:
  42. delete from t1 where a=3

MySQL 死锁日志分析的更多相关文章

  1. MySQL 死锁问题分析

    转载: MySQL 死锁问题分析 线上某服务时不时报出如下异常(大约一天二十多次):"Deadlock found when trying to get lock;". Oh, M ...

  2. MySQL死锁案例分析与解决方案

    MySQL死锁案例分析与解决方案 现象: 数据库查询: SQL语句分析:  mysql. 并发delete同一行记录,偶发死锁.   delete from x_table where id=?   ...

  3. MySQL死锁问题分析及解决方法实例详解(转)

      出处:http://www.jb51.net/article/51508.htm MySQL死锁问题是很多程序员在项目开发中常遇到的问题,现就MySQL死锁及解决方法详解如下: 1.MySQL常用 ...

  4. 基于innodb_print_all_deadlocks从errorlog中解析MySQL死锁日志

    本文是说明如何获取死锁日志记录的,不是说明如何解决死锁问题的. MySQL的死锁可以通过show engine innodb status;来查看,但是show engine innodb statu ...

  5. mysql死锁问题分析

    线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”. Oh, My God! 是死锁问题.尽管报错不多,对性能目前看来 ...

  6. mysql死锁问题分析(转)

    线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”. Oh, My God! 是死锁问题.尽管报错不多,对性能目前看来 ...

  7. mysql 慢日志分析

    mysql 调优首先需要找到那些有问题的SQL语句. 怎么找到这些语句呢? mysql 提供了很方便的功能. 1.慢日志 在my.cnf 文件中,增加如下配置 log-error            ...

  8. MySQL二进制日志分析-代码实现(FORMAT_DESCRIPTION_EVENT)

    如前文概述,MySQL Binlog v3以前版本, 二进制日志文件的第一个事件是START_EVENT_V3, 从v4版本开始第一个事件为FORMAT_DESCRIPTION_EVENT(以下简称F ...

  9. MySQL死锁原因分析

    行级锁有三种模式: innodb 行级锁 record-level lock大致有三种:record lock, gap lock and Next-KeyLocks. record lock  锁住 ...

随机推荐

  1. VS2013 添加文件头部注释模板

    在看视频的时候发现,视频中每次新建一个类文件 都会自动生成一串 头部的注释:

  2. Oracle基础<5>--触发器

    一.触发器 触发器是当特定事件出现时自动执行的代码块.比如,每次对员工表进行增删改的操作时,向日志表中添加一条记录.触发器和存储过程是由区别的:触发器是根据某些条件自动执行的,存储过程是手动条用的. ...

  3. ibatis mysql replace into 返回ID

    目前只能在replace into 之后,重新查询数据

  4. maven的update project是什么意思

    一个是更新依赖,然后是clean projects,重新编译

  5. 修复浏览器不支持Array自带的indexOf方法的扩展

    JavaScript中Array的indexOf方法支持的浏览器有:IE9+.Firefox 2+.Safari 3+.Opera 9.5+和Chrome 如果想要在不支持的浏览器中使用indexOf ...

  6. Oracle学习笔记1:win7 x64下安装Oracle10g

    oracle 10g在win7x64下的安装: 第一次直接双击setup,出错了…… 可能是兼容性的问题,所以试着 右击setup-->属性-->兼容性-->勾上"以兼容模 ...

  7. Part 11 Search filter in AngularJS

    As we type in the search textbox, all the columns in the table must be searched and only the matchin ...

  8. 计算日期时间 自动加1天 PHP计算闰年 java与PHP时间戳对比区别

    昨天写一个同步数据库的模块  从一个数据库同步到另外一个数据库,因为数据较多,不可能一次性全部搬迁过去,所以就按照每天搬迁! 写了一个 模块,点击加1,只要点击一次,自动从A数据库取出1天的数据, 并 ...

  9. Js判断CSS文件加载完毕的实例教程

    要判断这个 CSS 文件是否加载完毕,各个浏览器的做法差异比较大,这次要说IE浏览器做的不错,我们可以直接通过onload方法来处理CSS加载完成以后的处理: 代码如下 复制代码 // 代码节选至se ...

  10. SQLServer触发器的使用

    创建: create trigger trigger_name on {table_name view_name} {for After Instead of } [ insert, update,d ...