模型服务连接失败

MySQL怎么会产生死锁?如何避免?

MySQL
分类
数据库
难度
未设置
来源数
1
更新时间
2026/03/29 00:57

答案

比如当事务A先加了一个间隙锁,然后事务B加了一个同样的间隙锁,接下来事务A想要在这中间插入,想添加插入意向锁,此时就会被阻塞,事务B也想插入的话,同样会被阻塞。 避免死锁: 1. 设置等待超时时间,当事务等待超时之后,就会发生回滚,从而使得其他事务能够继续执行 2. 开启主动死锁检测,将innodb_deadlock_detect设置为on,发生死锁时,就会让死锁链中的一个事务发生回滚,使得其他事务继续执行。

相关题目(5)

分布式系统Redis
分布式系统并发Redis
分布式系统Redis
分布式系统并发Redis

元信息

审核状态: active
关联来源: 1

来源面经题(0)

这道题目前没有手动沉淀的面经题来源。

来源(1)

Java八股(数据库).md

knowledge_note
Question 54: MySQL怎么会产生死锁?如何避免? Source answer: 比如当事务A先加了一个间隙锁,然后事务B加了一个同样的间隙锁,接下来事务A想要在这中间插入,想添加插入意向锁,此时就会被阻塞,事务B也想插入的话,同样会被阻塞。 避免死锁: 1. 设置等待超时时间,当事务等待超时之后,就会发生回滚,从而使得其他事务能够继续执行 2. 开启主动死锁检测,将innodb_deadlock_detect设置为on,发生死锁时,就会让死锁链中的一个事务发生回滚,使得其他事务继续执行。 Reviewed answer: 死锁通常由多个事务相互持有锁并等待对方释放导致,例如两个事务先持有相同范围的间隙锁,再都尝试插入。避免方式包括设置锁等待超时,以及开启 innodb_deadlock_detect 主动死锁检测。