GreatSQL社区

搜索

[讨论中] 一个阿里云RDS FOR MSYQL 8.0.34 死锁疑惑

217 0 2024-4-3 16:37
本帖最后由 innerDBA 于 2024-4-3 17:07 编辑

一个新项目上线接客后,每天都有死锁发生。它的代码是从另外个项目COPY过来的。另外个项目没有死锁。RC模式下
表结构大体相同,唯一区别A表是分区表 另外个项目主键有3个字段构成(NO,ID,TIME)。 新项目由(ID,TIME)构成 ,外加唯一索引 IUX_TRANS_NO(NO,TIME)
业务是 订单完工处理 手工提交

1 更新订单状态
2 更新账户
3 更新汇总表
4 更新订单汇总号



215 这个订单号  执行 1,2,3   
216 这个订单号 执行 1,2   
这下 两个都上了不同的锁

第一个阻塞是 3 更新汇总 ID=212   两个215 216 都是执行更新同一行
第二个阻塞 是分区唯一索引 IUX_NO 组合的(NO,TIME)
就是 215 要执行 4 更新订单汇总号的时候  发现 216 的1号SQL 上了锁 锁定216,然后216执行2号SQL时候 被215的2号SQL阻塞了
我怀疑是 为什么 唯一索引会导致阻塞  我实验了下是不会的 会不会前面 215本身的第一条语句上了锁




全部回复(0)
innerDBA

12

主题

0

博客

61

贡献

注册会员

Rank: 2

积分
92

助人为乐(铜)勤学好问(铜)

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-4-30 17:41 , Processed in 0.017710 second(s), 7 queries , Redis On.
快速回复 返回顶部 返回列表