1、全局锁
会锁住整个数据库,使得其他事务只能进行读操作,写操作将被阻塞。通常用户数据库备份。
2、表级锁
种类
(1)读锁,又称贡献锁,多个读操作可以同时进行,但不能进行写操作。
(2)写锁:又称排他锁,当前客户端操作没有完成,会阻塞其他客户端的读写操作。
存储引擎默认锁:MyISAM
特点:对整张表加锁,开销小,力度大,无死锁,但容易发生锁冲突。
3、行级锁
种类
(1)行锁:锁定的是某行记录,防止其他事务对其进行update或delete操作,在RC、RR隔离级别下都支持。
(2)间隙锁:锁定索引间隙记录(不包含改记录),左开右开区间,确保索引间隙记录不变,防止其他事务在该间隙insert,避免产生幻读(前后读的数据集不同),在RR隔离级别下支持。
(3)临键锁:行锁和间隙锁的组合。锁住索引间隙记录(包含该记录),左开右闭区间,在RR隔离级别下支持。
4、意向锁
(1)解决表锁和行锁冲突,InnoDB加入意向锁,使得表锁不用检查每行数据是否加锁,只需检查是否有意向锁即可。
(2)分类
意向共享锁(IS):与表锁共享锁兼容(read),与表锁排他锁互斥。在准备给表加入共享锁(S)时,需要先获得该表的IS锁。
意向排他锁(IX):与表锁共享锁和排他锁互斥。在准备给表加入排他锁时,需要先获得该表的IX锁。
标签:RR,间隙,记录,意向锁,Mysql,机制,表锁,行锁 From: https://blog.csdn.net/m0_75199504/article/details/143982440