高并发场景下如何避免死锁
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 阅读(689) 评论(0) 编辑 收藏 举报