一直都很想讨论一下innoDB的行锁,但是看到了何登成大神的博客之后发现他的研究更深入说的更好,是一篇非常优秀的博客,但是需要对索引有比较深入的了解,因此看他的博客之前可以先看看我的一篇关于索引的文章MySQL系列-B+Tree索引详解。
同时也深感数据库易学难精,一条SQL下去可能发生了很多你不知道的细节,要想学的很透彻靠博客和书籍是不够的,还是得直接阅读源码,这是一个非常漫长的路。
下面是大神的博客地址© 2012-2017 何登成的技术博客 MySQL 加锁处理分析
下面我补充一点MySQL/innoDB对死锁的处理,参考高性能MySQL
发生死锁后innoDB一都能自动检测,并使一个事务释放锁并回退,另一个事务获得锁继续完成事务。对于不能检测到的情况也可以设置超时等待参数innodb_lock_wait_timeout来解决。通常来说死锁是应用设计问题,通过调整业务流程、数据库对象设计、事务大小、以及SQL语句,绝大部分死锁都可以避免。

本文讨论了MySQL中InnoDB存储引擎的行锁机制,并深入探讨了死锁的自动检测与处理方式。通过调整应用程序的设计和SQL语句可以有效避免死锁的发生。
232

被折叠的 条评论
为什么被折叠?



