InnoDB死锁
2021-04-19 18:25:17 0 举报
InnoDB死锁
作者其他创作
大纲/内容
SELECT * FROM t WHERE id = 1;
InnoDB死锁的解决方案:InnoDB有一个死锁检测机制,当检测到死锁的时候会选择较小的事物(指插入、删除或者更新记录数较少的事务)进行回滚。并向客户端发送一条错误信息:ERROR 1213 (40001):Deadlock found……
BEGIN;
id
事物1(线程)
3
加锁失败,等待
事物2(线程)
2
bin
20
加独占锁
age
4
1
SELECT * FROM t WHERE id = 2;
形成死锁的四个条件:1、互斥访问2、持有并等待3、资源费抢占式(即如果持有资源的线程不释放资源,其他线程不能去抢)4、循环等待
可以根据死锁日志来逆向定位发生死锁的语句,然后再进行优化。SHOW ENGINE INNODB STATUS 来查看最近发生的一次死锁信息。(日志分析等待后续更新……)
name
peile
19
0 条评论
回复 删除
下一页