死锁的产生原因和优化方法


[日期:2021-03-29 02:16]   来源:    阅读:

我们在前几期的文章中给大家简单介绍了软件开发项目中会用到的锁的类型等内容,而本文我们再来说说,死锁的产生原因和优化方法。

死锁的产生原因和优化方法

出现死锁后某个事务会回滚,其他事务成功,上层业务会捕获到死锁错误,再重试一般会成功,如果出现大量锁重试,则说明哪里出了问题,写代码的时候可以注意以下几点可以减少死锁出现的概率:

类似的业务逻辑尽量以固定的顺序访问表和行

如果业务允许,大事务拆小,大事务持有锁的时间更长,更容易出现死锁

为表添加合理的索引,可以看到可重复读级别下,如果不走索引(非ICP的查询)将会为表的每一行记录加锁

尽量少用forshare或者forupdate语句,虽然看起来只是在一行记录上加锁,但是由于间隙锁和临键锁的存在,锁住的可能不止是一行记录

提前申请足够强度的锁,不要先用forshare锁住行,后面再update,很容易死锁。

希望这辈子,最让你无悔的事情就是来达内学习!学习向来不是件易事,但无论过程多么艰难,希望你依然热爱生活,热爱学习!永远记得,达内将与你一同前行!现在扫码,立即领取万元课程礼包,助力0基础快速入行,为你梳理行业必备技能,全方位了解岗位发展前景!

【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。


友情链接: