数据库中共分4种锁:1.共享锁 -Shared lock。 2.更新锁 -Update lock。 3.排他锁 -Exclusive lock。4.意向锁 Intent lock。
1.共享锁(S锁)。同一个表可以共存多个共享锁。共享锁不阻塞其他事务的读操作,但阻塞写操作。数据库规定:同一个表不可以同时存在共享锁和排他锁。共享锁升级为排他锁时,必须释放所有共享锁。
2.更新锁(U锁)。更新锁可以和共享锁兼容。更新锁会阻塞其它的更新锁和排他锁。同一个表上不可以存在多个更新锁。更新锁表示:稍后会对该资源更新。更新锁不允许其它事物对该表进行修改,但可以访问查询。更新锁是对表上锁,一旦找到对应修改的记录,更新锁变更为排他锁,无需在意该表是否存在其它事物的共享锁。
3.排他锁(X锁)。又叫独占锁。排他锁阻塞任何锁,某个表上有排他锁的场合,其它事物不可以对该表进行读、写操作。
4.意向锁(I锁)。意向锁一般放在表级别上。用来向其它事物表明:该表已经被加某某锁。意向锁分为:意向共享锁(Intent Share Lock,简称IS锁);意向排他锁(Intent Exclusive Lock,简称IX锁);共享意向排它锁(Share Intent Exclusive Lock,简称SIX锁),表示某个事物需要对这个表进行先查询再更新数据。