任何人都可以解释我在MySQL 5.1上发现的Deadlock和Lockwait错误的细节.它是一样的吗?何时发生死锁错误以及何时发生lockwait超时?
egg*_*yal 19
甲死锁发生其中存在交易必须为了获得锁之间的循环依赖关系进行:例如,假设事务1持有锁A,但需要获得锁B至前进; 并且事务2持有锁B但需要获取锁A以继续 - 事务立即死锁(不需要超时)并且在释放其锁之前都不能继续.因此,唯一的解决方案是回滚一个事务(一个应用程序代码应该检测到这种可能性并相应地处理,通常是再次尝试事务).
甲等待超时时所配置的超时时间(例如发生innodb_lock_wait_timeout
在InnoDB中的锁的情况下),而经过一个事务等待一个锁,也许是因为一个缓慢的查询持有锁,并没有执行完毕.如果事务等待的时间更长,则可能(甚至可能)锁定可用并获取,但存在超时以避免应用程序无限期地等待数据库.
| 归档时间: |
|
| 查看次数: |
6791 次 |
| 最近记录: |