Django 项目, 用的是 Mysql 数据库, 服务器开了 16 个线程在跑, 有加事务, 然后访问量上来后, 日志中时不时会出现 "Deadlock found when trying to get lock; try restarting transaction" 这样的异常, 这个异常是加事务那块代码抛出的
在事务包裹的代码里, 大概执行了以下操作:
网上查了查 有的说是外键问题, 有的说是两条数据同时操作同一个表的问题, 没太搞明白, 想请教一下有没有遇到过类似情况的, 指点一下
1
jenlors 2021-03-16 10:12:20 +08:00 1
明显是出现了死锁,看看事务包裹的代码是不是执行时间太长,尝试将一个大事务拆分为多个小事务,事务里面不要有网络请求等。
|