MySQL死锁

死锁大家应该不会陌生,互相占用对方资源,互相等待释放,从而产生恶性循环,在数据库中当多个事务试图以不同的顺序来锁定资源的时候,就有可能出现死锁问题,下面举个简单例子:
事务1:update ... where id=1
update ... where id=2

事务2:update ... where id=2
udpate ... where id=1
如果凑巧,事务1,2都执行完自己的第一条update语句,同时也锁定该行数据,进入第二条,这时发现都有上锁,那么就会彼此等待,这时候就会死锁。

InnoDB目前处理死锁的方法是:将持有最少行级排它锁的事务进行回滚操作(这是相对简单死锁回滚算法)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容