zoukankan      html  css  js  c++  java
  • 数据库死锁如何解决

    死锁指的是多个事务在同一资源上相互占用并请求锁定对方占用的资源而导致恶性循环的现象。当多个事务试图以不同顺序锁定资源时可能就会产生死锁,多个事务同时锁定同一个资源也会产生死锁。

    • 为了解决死锁问题,数据库系统实现了死锁检测和死锁超时机制。
    • 越复杂的系统,例如InnoDB存储引擎,越能检测到死锁的循环依赖,并立即返回一个错误。这种解决方式很有效,否则死锁会导致出现非常慢的查询。
    • 还有一种解决方法,就是当查询的时间达到锁等待超时的设定后放弃锁请求,这种方式通常来说不太好。

    innoDB目前处理死锁的方法是将持有最少行级排他锁的事务进行回滚。

    死锁发生后,只有部分或者完全回滚其中一个事务,才能打破死锁。对于事务型系统这是无法避免的,所以应用程序设计时必须考虑如何处理死锁。大多数情况下只需要重新执行因死锁回滚的事务即可。

    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    全景拼接
    krpano之字幕添加
    UML之时序图
    krpano之语音介绍
    小工具之录音(文字转语音)
    动态生成按钮的点击事件绑定
    登录之简单验证码
    登录之md5加密
    redis与mysql数据同步
    Sql Server 主从数据库配置
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/14979493.html
Copyright © 2011-2022 走看看