首页 > 编程知识 正文

mysql解决死锁的三种方法,mysql 避免死锁

时间:2023-05-06 08:39:12 阅读:157523 作者:2595

Mysql死锁:

通常是因为多个事务具有彼此不兼容的锁。

重复性RR或更高的级别将生成gap lock和next-key lock

兼容性矩阵(横向为已拥有的锁,纵向为请求的锁) )。

发生死锁的条件:

situation1:

AB都获得了GK,插入时都想获得IK,等待对方的GK被释放,发生了死锁。

situation2:

如何避免:

使用主键更新数据,以防止在使用非聚簇索引返回表和使用聚簇索引时发生争用导致的死锁。 如果认为不可能读取和重复幻像,请尽量使用RC隔离级别以避免gap lock死锁。 避免长事务,将事务分解设置为锁定超时并等待innodb_lock_wait_timeout

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。