数据库死锁的解决方式

数据库死锁的解决方式:

死锁是指多个事务在执行时,因争夺锁资源而造成的一种互相等待的现象。解决方法有:

  • 超时机制: 通过参数 Innodb_lock_wait_timeout 来设置超时等待时间,两个事务互相等待时,达到设置的超时等待时间后,其中一个事务进行回滚,这样另一个等待的事务就能继续进行了。优点是简单,缺点是如果事务操作更新了很多行,那么进行回滚会非常占用时间。
  • 等待图: InnoDB 引擎采用的是等待图的方式来进行死锁检测,它保存锁的信息链表和事务等待链表,采用深度优先算法来判断是否存在回路,如果存在,就表示存在死锁,通过将持有最少行级排他锁的事务进行回滚来解决。(回滚 undo 量最小的事务)
发布了307 篇原创文章 · 获赞 11 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/dl674756321/article/details/103648007