有人可以详细解释一下MySQL 5.1中发现的死锁和锁等待错误的区别吗?它们是完全相同的吗?死锁错误是什么时候发生的,锁等待超时又是什么时候发生的?
innodb_lock_wait_timeout
)在事务等待锁时到期,可能是因为一个缓慢的事务持有锁并且没有完成执行,或者可能是因为许多事务正在排队等待锁。可能(甚至很可能)如果事务等待更长时间,锁就会变得可用并被获取,但超时存在是为了避免应用程序无限期地等待数据库。等待超时类似于司机因为延误而放弃并返回。死锁是指两个线程无限期地等待同一件事情。 锁等待超时意味着一个线程在等待获取锁的过程中超时了,从而防止了死锁的发生。