mysql的锁

共享锁(读锁,S锁)

查询语句加此锁,在本次事务没有提交或回滚时,对查询到的数据进行加锁。
例:
select * from mytable where id = 3 lock in share mode;

排它锁(写锁,X锁)

查询语句加此锁,在本次事务没有提交或回滚时,如果查询条件有索引对查询到的数据进行加锁,如果查询条件没有索引对表进行加锁。
例:
select * from mytable where id = 7 for update;

意向锁

分为意向排它锁(IX)和意向共享锁(IS),它们都为表锁,并相互兼容。
当对表加共享锁或排它锁时,mysql会对整张表加意向锁,如果有其他事务操作此表示时,mysql会告知在哪里有锁。

临键锁(Next-key)

当对表加共享锁或排它锁时,如果进行范围查询且有数据命中,mysql会加此锁,加锁的范围为左开右闭。

间隙锁(GAP)

当对表加共享锁或排它锁时,如果进行范围查询没有数据命中,mysql会加此锁,加锁的范围为左开右闭。

posted @ 2022-03-07 18:04  叕叕666  阅读(55)  评论(0)    收藏  举报