LBCC
LBCC也就是基于锁
先介绍LBCC也就是锁,官方从很多方面来给锁分类,最大类可分表锁,行锁
表锁与行锁的区别:
锁定粒度:表锁>行锁
加锁效率:表锁>行锁
冲突概率:表锁>行锁
并发性能:表锁<行锁
其他类区别可自行去百度查看详细总结。
sorx(共享锁,排他锁)
在innodb中实现了两个标准的行级锁,可以看成读写锁
S共享锁(读锁):其他事务可以读,也可以继续加共享锁。
语法:在查询行数据语句后加上lock in share mode; 释放:commit,Rollback;
X排他锁(写锁):一旦加了排他锁,只有自己可以进行增删改查,其他事务无法进行任何操作,并且与其他锁不能共存。
语法:在查询行数据语句后加上for update; 释放:commit,Rollback;
意向锁是行表锁可以共存的表锁,又分为意向共享锁和意向排他锁。
意向共享锁:表示事务准备给数据行加共享锁之前,获取此表的IS锁。
意向排他锁:提前获取此表的IX锁。
注意:意向锁是由数据引擎自己维护的,无法手动操作意向锁,在为数据行加共享 / 排他锁之前,Inoodb 会先获取该数据行所在表的对应意向锁。
记录锁:等值查询,精确匹配。
间隙锁:只存在于RR隔离级别,用于范围查询的锁,可以加排他锁