数据库锁冲突怎么排查

2026-04-30

症状是偶发失败,根因往往在一处很小的写法。

先确认是不是锁

偶发的写失败、且错误信息里出现锁相关字样,基本可以判定是锁竞争。这时不要急着加超时,先找是谁长时间占着。

常见的占用来源

事务范围开得太大,中间还夹了网络请求或者耗时操作。事务应当尽量短,把不涉及数据库的操作移到事务外。

连接未释放

查询结束后没有正确关闭游标或连接,会让资源一直被占着。在循环里执行查询时这个问题会被放大。

最后才考虑超时

加长等待时间只是掩盖问题。先修掉长事务和未释放的连接,通常问题就消失了。