mysql中的锁

参见:https://blog.csdn.net/qq_40378034/article/details/90904573(全面而深入但是不太好理解)

 https://segmentfault.com/a/1190000011164489(全面而深入但是不太好理解)

https://www.cnblogs.com/chenqionghe/p/4845693.html   较为浅显适合入门学习(推荐,与上面的文章的相同但是简化了一下)

https://blog.csdn.net/Saintyyu/article/details/91269087  最后一个写的不太好,可以看它的参考博客,其它内容可以看

https://learnku.com/articles/39212  比较简单的说了一下锁的知识点可以大致看一下

https://www.jianshu.com/p/10a8d8977aaf    自增锁

https://www.cnblogs.com/jian0110/p/12721924.html  很好的解释了为什么行锁是基于索引的

https://blog.csdn.net/LJJZJ/article/details/93775483 表锁------MDL锁,意向锁

意向锁存在的原因:简单来说就是为了表级锁加锁时防止和行级锁产生冲突的一个解决方案

1.innodb支持行锁,并且不升级表锁

   主要原因是行锁开销比较小,3千万条记录的表,锁全部行大约使用90M内存。

2.innodb行锁在非唯一辅助索引上,锁定不是一行记录,是一个范围

   相反,如果是唯一的辅助索引,是锁一行记录。

3.锁冲突时,后发生的锁请求会等待(阻塞)。  如果事物之间形成锁请求等待依赖闭环,就会出现死锁。

  wait-for-graph是一种死锁预测方式,有助于预防死锁。

原文地址:https://www.cnblogs.com/chaojibaidu/p/14852497.html