请教一个关于deadlock 死锁的问题

weixin_45069059 weixin_45069059 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
由于某些原因,没有使用并发,而是通过mysql数据库的表来代替队列。

具体语句是

先执行sql = 'SELECT * FROM resource_trading_center_yeji where is_deleted is null and project_source = "'+center_name+'" for update'
后执行sql = 'update resource_trading_center_yeji set is_deleted=1 where url=%s;'
中间没有commit

锁的等待超时设置为了1秒

场景是:一堆实例遍历plugins,plugs有各自的center_name,遍历过程中可能重复

project_source和is_deleted都有索引,按理说只会添加行锁,即便执行'update resource_trading_center_yeji set is_deleted=1 where url=%s;'时添加了表锁(url没有索引),但多个session并没有交叉等待锁。

不清楚为什么死锁,照理说应该等锁超时才对。
谢谢解答
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
weixin_45069059
MySQL 57,062 成员 56,759 内容