代码改变世界

随笔档案-2014年01月

mysql中删除同一行会经常出现死锁?太可怕了

2014-01-24 11:06 by 竹 石, 13204 阅读, 收藏,
摘要: 之前有一个同事问到我,为什么多个线程同时去做删除同一行数据的操作,老是报死锁,在线上已经出现好多次了,我问了他几个问题:1. 是不是在一个事务中做了好几件事情? 答:不是,只做一个删除操作,自动提交2. 有多少个线程在做删除? 答:差不多10个3. 是什么隔离级别? 答:可重复读当时觉得不可思议,按说自动提交的话行锁,如果已经有事务加锁了,则会等待,等提交之后再去做,发现已经删除了,就会返回,删除0条,为什么会死锁?但事情已经出了,必须研究一下,不然终究是心头之苦啊。然后想到既然线上有这么简单的操作就可以死锁,那么应该写个简单的程序就可以重现,然后同事李润杰兄弟咔嚓咔嚓没多时就给我了,在... 阅读全文