八大案例搞懂Mysql加锁规则

235 阅读1分钟

  Mysql中有很多种类的锁,表锁、行锁、读锁、写锁、Gap锁等等等等,加锁规则也有所差别,这里把我之前做过的分享ppt拿出来为大家好好梳理一下,通过八个经典案例一次性搞懂这些加锁规则!


先约束一下Mysql的版本,不同版本的实验结果可能有偏差。 在这里插入图片描述 这里先用一个极端的例子引入一下间隙锁(Gap锁)的概念: 在这里插入图片描述 语句的先后执行顺序我用紫色箭头标识出来了: 在这里插入图片描述 幻读出现了: 在这里插入图片描述 间隙锁的概念: 在这里插入图片描述 间隙锁和行锁的对比,其实二者差异还挺大的,具体见ppt: 在这里插入图片描述 引入了间隙锁的概念之后,就可以进一步引入next-key lock的概念了: 在这里插入图片描述 这里插一个题外话,在使用mysql时有可能会遇到死锁的情况,要小心: 在这里插入图片描述 在这里插入图片描述 重头戏来了,加锁规则一定要记住!后面会一直重复一直重复 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 此时加锁的区域如下图的阴影部分所示: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述