李努力 发表于 2024-7-30 11:29:34

死锁相关的问题

data:image/png;base64,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为什么session1 rollback会产生死锁,而commit就不会呢?这种情况下rollback和commit对加锁有什么改变吗?

yejr 发表于 2024-7-30 12:09:37

可以先参考这个案例解析 https://mp.weixin.qq.com/s/8nRdTa0ruovAi8juL_H8yQ

李努力 发表于 2024-7-30 13:46:02

本帖最后由 李努力 于 2024-7-30 14:02 编辑

yejr 发表于 2024-7-30 12:09
可以先参考这个案例解析 https://mp.weixin.qq.com/s/8nRdTa0ruovAi8juL_H8yQ
是不是因为这样:

① rollback情况:说明session1没有写入成功,记录不存在,session2和session3都获取了S next key lock,但是当获取record lock(X)的时候就会相互阻塞产生死锁
② commit情况:说明session1写入成功了,记录存在,这时session2和session3再写入的时候只会进行冲突检测也就是试图添加S next key lock,但是不会尝试获取record lock(X)(因为记录存在了,执行了 insert报错直接获取S next key lock),所以session2和session3都是S类型的锁也就没有所谓的锁冲突,所以不会产生死锁。
这样理解对吗?

yejr 发表于 2024-7-30 14:05:11

李努力 发表于 2024-7-30 13:46
是不是因为这样:

① rollback情况:说明session1没有写入成功,记录不存在,session2和session3都获取了 ...

嗯,是滴

李努力 发表于 2024-7-30 14:23:29

yejr 发表于 2024-7-30 14:05
嗯,是滴

老师,那insert ... on duplicate key ...这种碰到主键或者唯一键冲突添加的是record lock(X)还是X next key lock呢?

yejr 发表于 2024-8-1 10:18:09

李努力 发表于 2024-7-30 14:23
老师,那insert ... on duplicate key ...这种碰到主键或者唯一键冲突添加的是record lock(X)还是X next...

插入前的唯一性冲突检测,都是先申请 next-key s lock,参考文档解释

If a duplicate-key error occurs, a shared lock on the duplicate index record is set. This use of a shared lock can result in deadlock should there be multiple sessions trying to insert the same row if another session already has an exclusive lock. This can occur if another session deletes the row.
页: [1]
查看完整版本: 死锁相关的问题