怎么避免mysql死锁

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么避免mysql死锁相关的知识,希望对你有一定的参考价值。

怎么避免mysql死锁

1、以固定的顺序访问表和行。比如两个更新数据的事务,事务A更新数据的顺序为1,2;事务B更新数据的顺序为 2 ,1;。这样更可能会造成死锁。

2、大事务拆小。大事务更倾向于死锁,如果业务允许,将大事务拆小。

3.在同一个事务中,尽可能做到一次锁定所需要的所有资源,减少死锁概率。

4、降低隔离级别。如果业务允许,将隔离级别调低也是比较好的选择,比如将隔离级别从RR调整为RC,可以避免很多因为gap锁造成的死锁。

5、为表添加合理的索引。可以看到如果不走索引将会为表的每一行记录添加上锁,死锁的概率大大增加。

以上是关于怎么避免mysql死锁的主要内容,如果未能解决你的问题,请参考以下文章

阿里二面:怎么解决MySQL死锁问题的?

阿里二面:怎么解决MySQL死锁问题的?

mysql 开发进阶篇系列 14 锁问题(避免死锁,死锁查看分析)

将共享锁升级为独占锁时避免 MySQL 死锁

数据库死锁处理方法

MariaDB 避免死锁