高并发场景下如何避免死锁

1、尽量使用短小事务,避免大事务。

 2、加FOR UPDATE/LOCK IN SHARE MODE锁时,最好降低事务隔离级别,例如用RC级别,降低死锁发生概率,也可以降低锁定粒度。

 3、事务中涉及多个表,或者涉及多行记录时,每个事务的操作顺序都要保持一致。

 4、通过索引优化SQL效率,降低死锁概率,避免全表扫描导致锁定所有数据。

5、程序中应有事务失败检测及自动重复提交机制。

 6、高并发(秒杀)场景中,关闭innodb_deadlock_detect选项,降低死锁检测开销,提高并发效率。

 

posted on 2022-02-28 22:39  1450811640  阅读(645)  评论(0编辑  收藏  举报