本文中,MySQL5.7版本,InnoDb引擎。
通过日志监控发现,线上环境发生死锁,show innodb status 日志内容如(只截取了一小段日志):
2020/4/22 1:29,InnoDB: *** WE ROLL BACK TRANSACTION (1)
2020/4/22 1:29,InnoDB:
2020/4/22 1:29,InnoDB: *** (1) WAITING FOR THIS LOCK TO BE GRANTED:
2020/4/22 1:29,InnoDB: *** (2) HOLDS THE LOCK(S):
2020/4/22 1:29,InnoDB: *** (2) WAITING FOR THIS LOCK TO BE GRANTED:
2020/4/22 1:29,"InnoDB: Transactions deadlock detected, dumping detailed information."
2020/4/22 1:29,InnoDB: *** (2) TRANSACTION:
2020/4/22 1:29, 4: len 7; hex 56000001791902; asc V y ;;
2020/4/22 1:29, 5: len 3; hex 800066; asc f;;
2020/4/22 1:29, 6: len 4; hex de9eb610; asc ;;
2020/4/22 1:29,update table_name set xxx= 0 where userId = 45987
2020/4/22 1:29,"Record lock, heap no 313 PHYSICAL RECORD: n_fields 10; compact format; info bits 0"
2020/4/22 1:29, 9: len 1; hex 80; asc ;;
2020/4/22 1:29, 4: len 7; hex 56000001791902; asc V y ;