深入浅出理解数据库s锁和x锁

1.s锁

        英文为 shared lock,叫共享锁,我们也称为读锁,即 read lock。s锁之间是共享的,或者说是互不阻塞的。

        顾名思义,当事务读取一条记录时,需要先给该记录添加s锁,当另一条事务也要读取该记录时,一样可以继续给该条记录添加s锁,但是此时不能添加写锁,也就是x锁,只有前一个事务的s锁释放了,才能加上x锁。

2.x锁

        英文为exclusive lock,叫排他锁,我们也常称之为写锁,即write lock。x锁是具有排他性的,即一个写锁会阻塞其他的x锁和s锁

        当一个事务需要修改一条记录时,需要先获取改记录的x锁。当事务对一条记录加上了x锁,那么事务即可以读取该条事务也可以修改,而其他事务则不能该条记录再添加任何锁,直到x锁被释放。

猜你喜欢

转载自blog.csdn.net/a2285786446/article/details/129037442