查看sql语句加锁信息

问题:

最近使用quartz集群,总是报deadlock问题,所以需要查看一下执行的sql导致的加锁冲突。

步骤:

1、在要测试的库中创建指定表innodb_lock_monitor

create table innodb_lock_monitor(x int) engine=innodb;
2、执行sql
BEGIN;

SET tx_isolation='SERIALIZABLE';

SET autocommit = 0;

UPDATE QRTZ_TRIGGERS SET TRIGGER_STATE = '7897' WHERE SCHED_NAME = 'clusterQuartzSchedular' AND JOB_NAME = 'addRefundJob';

3、执行查询锁命令:

SHOW ENGINE INNODB STATUS;

4、得到执行结果

 

5、拷贝Status单元格的内容到notepad编辑器中查看详细信息:

show engine innodb status

TABLE LOCK table `pay_quartz`.`QRTZ_TRIGGERS` trx id 5E7BD8 lock mode IX
RECORD LOCKS space id 0 page no 3846 n bits 168 index `IDX_QRTZ_T_J` of table `pay_quartz`.`QRTZ_TRIGGERS` trx id 5E7BD8 lock_mode X
Record lock, heap no 18 PHYSICAL RECORD: n_fields 5; compact format; info bits 0
 0: len 22; hex 636c757374657251756172747a5363686564756c6172; asc clusterQuartzSchedular;;
 1: len 12; hex 616464526566756e644a6f62; asc addRefundJob;;
 2: len 7; hex 44454641554c54; asc DEFAULT;;
 3: len 16; hex 616464526566756e6454726967676572; asc addRefundTrigger;;
 4: len 7; hex 44454641554c54; asc DEFAULT;;

RECORD LOCKS space id 0 page no 2464 n bits 88 index `PRIMARY` of table `pay_quartz`.`QRTZ_TRIGGERS` trx id 5E7BD8 lock_mode X locks rec but not gap
Record lock, heap no 20 PHYSICAL RECORD: n_fields 18; compact format; info bits 0
 0: len 22; hex 636c757374657251756172747a5363686564756c6172; asc clusterQuartzSchedular;;
 1: len 16; hex 616464526566756e6454726967676572; asc addRefundTrigger;;
 2: len 7; hex 44454641554c54; asc DEFAULT;;
 3: len 6; hex 0000005e7bd8; asc    ^{ ;;
 4: len 7; hex 26000005b02d24; asc &    -$;;
 5: len 12; hex 616464526566756e644a6f62; asc addRefundJob;;
 6: len 7; hex 44454641554c54; asc DEFAULT;;
 7: SQL NULL;
 8: len 8; hex 8000014a93f7d3a0; asc    J    ;;
 9: len 8; hex 8000014a93f33fc0; asc    J  ? ;;
 10: len 4; hex 80000000; asc     ;;
 11: len 4; hex 37383937; asc 7897;;
 12: len 4; hex 43524f4e; asc CRON;;
 13: len 8; hex 800001495c7369e0; asc    I\si ;;
 14: len 8; hex 8000000000000000; asc         ;;
 15: SQL NULL;
 16: len 2; hex 8000; asc   ;;
 17: len 30; hex aced0005737200156f72672e71756172747a2e4a6f62446174614d61709f; asc     sr  org.quartz.JobDataMap ; (total 603 bytes);

RECORD LOCKS space id 0 page no 3846 n bits 168 index `IDX_QRTZ_T_J` of table `pay_quartz`.`QRTZ_TRIGGERS` trx id 5E7BD8 lock_mode X locks gap before rec
Record lock, heap no 2 PHYSICAL RECORD: n_fields 5; compact format; info bits 0
 0: len 22; hex 636c757374657251756172747a5363686564756c6172; asc clusterQuartzSchedular;;
 1: len 12; hex 7061795374617475734a6f62; asc payStatusJob;;
 2: len 7; hex 44454641554c54; asc DEFAULT;;
 3: len 16; hex 70617953746174757354726967676572; asc payStatusTrigger;;
 4: len 7; hex 44454641554c54; asc DEFAULT;;

转载于:https://www.cnblogs.com/beiyeren/p/4191372.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值