MySQL和PGSQL事务锁等待超时时间
程序员文章站
2024-01-14 09:41:58
...
问题出现的场景:
- 在消息队列处理消息时,同一事务内先后对同一条数据进行了插入和更新操作;
- 多台服务器操作同一数据库;
- 瞬时出现高并发现象;
导致数据更新或新增后数据经常自动回滚;表操作总报 Lock wait timeout exceeded
并长时间无反应
mysql锁等待时间
-
Lock wait timeout exceeded
:后提交的事务等待前面处理的事务释放锁,但是在等待的时候超过了mysql的锁等待时间,就会引发这个异常。
查看innodb_lock_wait_timeout的具体值:
SHOW VARIABLES LIKE 'innodb_lock_wait_timeout'
Postgresql锁等待时间
Postgresql中同样可以设置所等待的超时时间,意味着当前事务在请求一个锁的时候,一旦等待时长超出指定的时间,当前语句被中止。
该参数的默认值为0,意味着发生锁等待的时候永远不超时,一直等待下去。
参考文献:1、https://www.cnblogs.com/christopherchan/p/12390819.html
2、https://www.cnblogs.com/wy123/p/13363767.html?utm_source=tuicool