锁的分类
select .... for update -- 会使用行级锁
表级锁
锁的是一张表,锁的颗粒度最大,发生锁冲突的概率最大,不会发生死锁,并发度底
表级锁有两种
一种是表锁
一种是元素锁
*表锁有两种表现形式
表共享读锁
表独占写锁
元数据锁 MDL 元数据
当对一个表做增删改差操作的时候,加MDL读锁;
当要对表做结构变更操作的时候加MDL写锁;
行级锁
每次锁的是一行数据,锁定的粒度最小,发生锁冲突的概率最低,并发度最高。可能会发生死锁
应用在InnoDB的存储引擎中
行锁: 锁定的是某一行的记录锁。RC、RR隔离级别都支持
间歇锁 :锁定索引记录间隙锁,确保索引记录的间隙不变 RR隔离级别支持 防止做insert
行间隙锁:行锁和间隙锁的组合,同时锁住数据,并且锁住数据前面的Gap。RR隔离级别支持