标签:记录 互斥 间隙 笔记 学习 索引 锁住 Mysql 级别
以下内容主要参考Mysql官方文档整理
MySQL server的锁主要是全局锁,行锁和表锁,通过存储引擎则可以实现不同的锁机制
MyISAM只支持到表级锁,因为MyISAM的索引与数据是分离的,其索引存储的是数据的物理地址,通过索引无法找到数据,就只能把整个表锁起来
innoDB的锁模型:
-
行级别的共享(s)与独占锁(x):s锁之间不互斥,s锁与x锁互斥,x锁之间互斥
-
意向锁:分为意向共享锁(IS)和意向独占锁(IX),表级锁。在事务获取表中的s锁之前需要先获得IS锁或者更强级别的锁;在事务获取表中的x锁之前需要先获得IX锁,参考。表级锁的互斥关系如下:
-
记录锁:索引记录上的锁,防止对行记录的增删改
-
间隙锁:在两行索引记录间的锁,或者在第一行记录之前范围的锁,又或者是最后一行记录之后的范围的锁。用于特定隔离级别如RR级别。产生间隙锁的条件:
(1) 使用非唯一索引查询单条记录,锁住前面的间隙
(2) 使用多列唯一索引,锁住中间的间隙
(3) 唯一索引锁住多行记录
更多理解请参考
-
Next-Key Locks:其实就是记录锁+间隙锁,注意是一个前开后闭的区间。
关于next-key lock的相关规则参考
-
其他锁比较特殊,不赘述
标签:记录,互斥,间隙,笔记,学习,索引,锁住,Mysql,级别 来源: https://blog.csdn.net/weixin_39739810/article/details/121766492
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。