MySQL innoDB 间隙锁产生的死锁问题 | 京东云技术团队

💡 原文中文,约3300字,阅读约需8分钟。
📝

内容提要

本文讨论了在线上经常出现死锁问题的背景下,通过代码分析和问题还原的方式排查问题。两个事务必须都完成update操作,才能执行insert操作,否则会出现死锁。介绍了InnoDB的三种行锁算法和间隙锁的副作用,以及如何避免更新或删除不存在的记录导致死锁问题。从代码级别上加锁可以从根本上解决问题,但会降低并发性。