查看db当前在执行的任务,可以发现已经堆积了很多update,引起死锁的query一般就在第一个update/insert之前,一般是一个read or create or alter语句
查看db当前的事务,找那个创建时间最早的(从发现死锁开始),找出thread_id
找出最近检查到的死锁
python mysqldb默认不自动提交事务,需要手动执行commit(),因此很容易出现client长时间read后没有commit,和后续的修改table操作冲突,导致锁表。在此建议大家在代码里都加上一行 conn.autocommit(True),避免因为忘记commit事务而引发锁表问题。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。